13 #include <utl/SparseVector.h>
15 #include <tst/Verify.h>
16 #include <cppunit/extensions/HelperMacros.h>
22 #define ASSERT_CLOSE(x, y) CPPUNIT_ASSERT(Verify<CloseTo>(x, y))
23 #define ASSERT_CLOSE_EPS(x, y, eps) CPPUNIT_ASSERT(Verify<CloseTo>(x, y, eps))
24 #define ASSERT_EQUAL(x, y) CPPUNIT_ASSERT(Verify<Equal>(x, y))
25 #define ASSERT_ITERATOR_EQUAL(it, e, i, v) \
26 CPPUNIT_ASSERT(it != e); \
27 ASSERT_EQUAL(it.GetIndex(), i); \
37 CPPUNIT_TEST(TestAccess);
38 CPPUNIT_TEST(TestIterators);
39 CPPUNIT_TEST(TestDotProduct);
40 CPPUNIT_TEST(TestAddSubtract);
41 CPPUNIT_TEST(TestScalarMultiply);
42 CPPUNIT_TEST(TestCtor);
43 CPPUNIT_TEST_SUITE_END();
55 for (
int i = 0; i < size; ++i)
60 for (
int i = 0; i < size; ++i)
80 v(0) = 1; v(10) = 2; v(100) = 3; v(1000) = -1;
107 a(0) = 1;
a(3) = 2;
a(5) = 3;
a(9) = 4;
110 b(0) = 1;
b(1) = 0;
b(2) = 2;
b(3) = 3;
b(4) = 4;
b(6) = 6;
b(7) = 7;
b(9) = 9;
112 const double scalar = a *
b;
121 a(0) = 1;
a(3) = 2;
a(5) = 3;
a(9) = 4;
124 b(0) = 1;
b(1) = 0;
b(2) = 2;
b(3) = 3;
b(4) = 4;
b(6) = 6;
b(7) = 7;
b(9) = 9;
132 p(0) = 2;
p(1) = 0;
p(2) = 2;
p(3) = 5;
p(4) = 4;
p(5) = 3;
p(6) = 6;
p(7) = 7;
p(9) = 13;
134 CPPUNIT_ASSERT(a == p);
139 CPPUNIT_ASSERT(a == p);
145 CPPUNIT_ASSERT(a == ta);
147 #pragma clang diagnostic push
148 #pragma clang diagnostic ignored "-Wself-assign-overloaded"
151 #pragma clang diagnostic pop
164 a(0) = 1;
a(3) = 2;
a(5) = 3;
a(9) = 4;
169 b(0) = 2;
b(3) = 4;
b(5) = 6;
b(9) = 8;
171 CPPUNIT_ASSERT(a == b);
181 CPPUNIT_ASSERT(vi == vd);
Sparse container class for vectorial data.
#define ASSERT_ITERATOR_EQUAL(it, e, i, v)
void TestScalarMultiply()
unsigned int Reclaim()
remove "empty" elements (that are equal to the initializer)
Iterator Find(const IndexType index)
CPPUNIT_TEST_SUITE_REGISTRATION(testAiresShowerFile)
unsigned int GetNonEmptySize() const
#define ASSERT_EQUAL(x, y)