1 // File to test matrix and vector implementation.
2 #include "source_test.h"
4 CPPUNIT_TEST_SUITE_REGISTRATION( sourceTest
);
7 sourceTest::setUp(void)
15 sourceTest::tearDown(void) {}
18 sourceTest::Constructor(void)
20 Source
source(1., &_v
);
22 CPPUNIT_ASSERT_EQUAL(Value(1.), source
.get_waveLength());
23 CPPUNIT_ASSERT_EQUAL(HKL_TRUE
, ::hkl_svector_cmp(&_v
, source
.get_direction()));
27 sourceTest::Equal(void)
29 const Source
s(1., &_v
);
31 CPPUNIT_ASSERT_EQUAL(s
, s
);
35 sourceTest::CopyConstructor(void)
37 const Source
s1(1., &_v
);
40 CPPUNIT_ASSERT_EQUAL(s1
, s2
);
44 sourceTest::SetWaveLength(void)
48 CPPUNIT_ASSERT_THROW(s
.setWaveLength(0.0), HKLException
);
50 CPPUNIT_ASSERT_NO_THROW(s
.setWaveLength(1.));
51 CPPUNIT_ASSERT_EQUAL(Value(1.), s
.get_waveLength());
56 sourceTest::SetDirection(void)
59 hkl_svector axe
= {{1, 1, 0}};
60 hkl_svector axe_ref
= {{1/sqrt(2.), 1/sqrt(2.), 0}};
62 hkl_svector null
= {{0, 0, 0}};
63 CPPUNIT_ASSERT_THROW(s
.setDirection(&null
), HKLException
);
64 CPPUNIT_ASSERT_NO_THROW(s
.setDirection(&axe
));
66 CPPUNIT_ASSERT_EQUAL(HKL_TRUE
, ::hkl_svector_cmp(&axe_ref
, s
.get_direction()));
70 sourceTest::GetSetKi(void)
78 ::hkl_svector_times_double(&ki_ref
, HKL_TAU
/ 1.54);
80 CPPUNIT_ASSERT_EQUAL(HKL_TRUE
, ::hkl_svector_cmp(&ki_ref
, &ki
));
82 hkl_svector null
= {{0, 0, 0}};
83 CPPUNIT_ASSERT_THROW(s
.set_ki(&null
), HKLException
);
88 CPPUNIT_ASSERT_NO_THROW(s
.set_ki(&ki_ref
));
90 CPPUNIT_ASSERT_EQUAL(HKL_TRUE
, ::hkl_svector_cmp(&ki_ref
, &ki
));