Added: A few more Matrix unit tests for sum() and norm2().
Changed: Using EXPECT_EQ instead of ASSERT_EQ to capture all errors and not only the first. Avoid using tmpnam which sometimes gives compiler warnings.
This commit is contained in:
parent
2e368af97a
commit
95c4434c4f
@ -25,16 +25,16 @@ TEST(TestMatrix, AddBlock)
|
||||
std::iota(b.begin(),b.end(),1);
|
||||
|
||||
a.addBlock(b, 2, 2, 2, false);
|
||||
ASSERT_EQ(a(2,2), 7);
|
||||
ASSERT_EQ(a(3,2), 10);
|
||||
ASSERT_EQ(a(2,3), 14);
|
||||
ASSERT_EQ(a(3,3), 17);
|
||||
EXPECT_EQ(a(2,2), 7);
|
||||
EXPECT_EQ(a(3,2), 10);
|
||||
EXPECT_EQ(a(2,3), 14);
|
||||
EXPECT_EQ(a(3,3), 17);
|
||||
|
||||
a.addBlock(b, 1, 1, 1, true);
|
||||
ASSERT_EQ(a(1,1), 2);
|
||||
ASSERT_EQ(a(2,1), 5);
|
||||
ASSERT_EQ(a(1,2), 6);
|
||||
ASSERT_EQ(a(2,2), 11);
|
||||
EXPECT_EQ(a(1,1), 2);
|
||||
EXPECT_EQ(a(2,1), 5);
|
||||
EXPECT_EQ(a(1,2), 6);
|
||||
EXPECT_EQ(a(2,2), 11);
|
||||
}
|
||||
|
||||
|
||||
@ -50,8 +50,8 @@ TEST(TestMatrix, AddRows)
|
||||
for (size_t j = 1; j <= 5; j++)
|
||||
{
|
||||
for (size_t i = 1; i <= 3; i++, fasit++)
|
||||
ASSERT_EQ(a(i,j), fasit);
|
||||
ASSERT_EQ(a(4,j), 0);
|
||||
EXPECT_EQ(a(i,j), fasit);
|
||||
EXPECT_EQ(a(4,j), 0);
|
||||
}
|
||||
|
||||
a.expandRows(-2);
|
||||
@ -59,22 +59,34 @@ TEST(TestMatrix, AddRows)
|
||||
fasit = 1;
|
||||
for (size_t j = 1; j <= 5; j++, fasit++)
|
||||
for (size_t i = 1; i <= 2; i++, fasit++)
|
||||
ASSERT_EQ(a(i,j), fasit);
|
||||
EXPECT_EQ(a(i,j), fasit);
|
||||
}
|
||||
|
||||
|
||||
TEST(TestMatrix, Norm)
|
||||
{
|
||||
utl::matrix<double> a(4,5);
|
||||
std::iota(a.begin(),a.end(),1.0);
|
||||
std::cout <<"A:"<< a;
|
||||
|
||||
EXPECT_FLOAT_EQ(a.sum(),210.0);
|
||||
EXPECT_FLOAT_EQ(a.sum(5),34.0);
|
||||
EXPECT_FLOAT_EQ(a.asum(5),34.0);
|
||||
EXPECT_NEAR(a.norm2(5),sqrt(414.0),1.0e-15);
|
||||
}
|
||||
|
||||
|
||||
TEST(TestMatrix3D, DumpRead)
|
||||
{
|
||||
size_t n0(2), n1(3), n2(4);
|
||||
utl::matrix3d<double> A(n0, n1, n2);
|
||||
Real* p = A.ptr();
|
||||
for (size_t i = 0; i<A.size(); ++i, ++p)
|
||||
utl::matrix3d<double> A(2,3,4);
|
||||
double i = 0.0;
|
||||
for (auto p = A.begin(); p != A.end(); ++p, ++i)
|
||||
*p = 3.14159*i*i;
|
||||
|
||||
std::string fname = std::tmpnam(nullptr);
|
||||
const char* fname = "/tmp/testMatrix3D.dat";
|
||||
std::ofstream os(fname);
|
||||
os << std::setprecision(16) << A;
|
||||
std::ifstream is(fname, std::ios::in);
|
||||
std::ifstream is(fname,std::ios::in);
|
||||
utl::matrix3d<double> B(is);
|
||||
B -= A;
|
||||
ASSERT_NEAR(B.norm2(), 0.0, 1.0e-13);
|
||||
|
Loading…
Reference in New Issue
Block a user