8 | | TEST(test_rv) |
9 | | { |
10 | | RV a = RV("{a }", "3"); |
11 | | CHECK_EQUAL(1, a.length()); |
12 | | CHECK_EQUAL(3, a.size(0)); |
13 | | CHECK_EQUAL(std::string("a"), a.name(0)); |
| 8 | TEST ( test_rv ) { |
| 9 | RV a = RV ( "{a }", "3" ); |
| 10 | CHECK_EQUAL ( 1, a.length() ); |
| 11 | CHECK_EQUAL ( 3, a.size ( 0 ) ); |
| 12 | CHECK_EQUAL ( std::string ( "a" ), a.name ( 0 ) ); |
22 | | RV trv = RV("{e f }", "1 2", "3 4"); |
23 | | CHECK_EQUAL(2, trv.length()); |
24 | | CHECK_EQUAL(3, trv.mint()); |
| 21 | RV trv = RV ( "{e f }", "1 2", "3 4" ); |
| 22 | CHECK_EQUAL ( 2, trv.length() ); |
| 23 | CHECK_EQUAL ( 3, trv.mint() ); |
26 | | // add a and b |
27 | | RV ab = a; |
28 | | bool added = ab.add(b); |
29 | | CHECK(added); |
30 | | CHECK_EQUAL(2, ab.length()); |
31 | | CHECK_EQUAL(3, ab.size(0)); |
32 | | CHECK_EQUAL(std::string("a"), ab.name(0)); |
33 | | CHECK_EQUAL(2, ab.size(1)); |
34 | | CHECK_EQUAL(std::string("b"), ab.name(1)); |
| 25 | // add a and b |
| 26 | RV ab = a; |
| 27 | bool added = ab.add ( b ); |
| 28 | CHECK ( added ); |
| 29 | CHECK_EQUAL ( 2, ab.length() ); |
| 30 | CHECK_EQUAL ( 3, ab.size ( 0 ) ); |
| 31 | CHECK_EQUAL ( std::string ( "a" ), ab.name ( 0 ) ); |
| 32 | CHECK_EQUAL ( 2, ab.size ( 1 ) ); |
| 33 | CHECK_EQUAL ( std::string ( "b" ), ab.name ( 1 ) ); |
47 | | // structure of a, b, c |
48 | | str s = abc.tostr(); |
49 | | int exp_ids[] = { 1, 1, 1, 2, 2, 3 }; |
50 | | int exp_sz = sizeof(exp_ids) / sizeof(exp_ids[0]); |
51 | | CHECK_EQUAL(exp_sz, s.ids.size()); |
52 | | CHECK_EQUAL(exp_sz, s.times.size()); |
53 | | for (int i = 0; i < exp_sz; ++i) { |
54 | | CHECK_EQUAL(exp_ids[i], s.ids(i)); |
55 | | CHECK_EQUAL(0, s.times(i)); |
56 | | } |
| 46 | // structure of a, b, c |
| 47 | str s = abc.tostr(); |
| 48 | int exp_ids[] = { 1, 1, 1, 2, 2, 3 }; |
| 49 | int exp_sz = sizeof ( exp_ids ) / sizeof ( exp_ids[0] ); |
| 50 | CHECK_EQUAL ( exp_sz, s.ids.size() ); |
| 51 | CHECK_EQUAL ( exp_sz, s.times.size() ); |
| 52 | for ( int i = 0; i < exp_sz; ++i ) { |
| 53 | CHECK_EQUAL ( exp_ids[i], s.ids ( i ) ); |
| 54 | CHECK_EQUAL ( 0, s.times ( i ) ); |
| 55 | } |
58 | | RV slice = abc(1, 2); |
59 | | CHECK_EQUAL(1, slice.length()); |
60 | | CHECK_EQUAL(3, slice.size(0)); |
61 | | CHECK_EQUAL(std::string("a"), slice.name(0)); |
| 57 | RV slice = abc ( 1, 2 ); |
| 58 | CHECK_EQUAL ( 1, slice.length() ); |
| 59 | CHECK_EQUAL ( 3, slice.size ( 0 ) ); |
| 60 | CHECK_EQUAL ( std::string ( "a" ), slice.name ( 0 ) ); |
68 | | // find abc in a |
69 | | f = abc.findself(a); |
70 | | int exp_indices[] = { 0, -1, -1 }; |
71 | | CHECK_EQUAL(3, f.length()); |
72 | | for (unsigned i = 0; |
73 | | i < sizeof(exp_indices) / sizeof(exp_indices[0]); |
74 | | ++i) { |
75 | | CHECK_EQUAL(exp_indices[i], f(i)); |
76 | | } |
| 67 | // find abc in a |
| 68 | f = abc.findself ( a ); |
| 69 | int exp_indices[] = { 0, -1, -1 }; |
| 70 | CHECK_EQUAL ( 3, f.length() ); |
| 71 | for ( unsigned i = 0; |
| 72 | i < sizeof ( exp_indices ) / sizeof ( exp_indices[0] ); |
| 73 | ++i ) { |
| 74 | CHECK_EQUAL ( exp_indices[i], f ( i ) ); |
| 75 | } |
84 | | // data index of ac in abc |
85 | | ivec di = ac.dataind(abc); |
86 | | int exp_di[] = { 0, 1, 2, 5 }; |
87 | | exp_sz = sizeof(exp_di) / sizeof(exp_di[0]); |
88 | | CHECK_EQUAL(exp_sz, di.size()); |
89 | | for (int i = 0; i < exp_sz; ++i) { |
90 | | CHECK_EQUAL(exp_di[i], di(i)); |
91 | | } |
| 83 | // data index of ac in abc |
| 84 | ivec di = ac.dataind ( abc ); |
| 85 | int exp_di[] = { 0, 1, 2, 5 }; |
| 86 | exp_sz = sizeof ( exp_di ) / sizeof ( exp_di[0] ); |
| 87 | CHECK_EQUAL ( exp_sz, di.size() ); |
| 88 | for ( int i = 0; i < exp_sz; ++i ) { |
| 89 | CHECK_EQUAL ( exp_di[i], di ( i ) ); |
| 90 | } |
110 | | int exp_bi[] = { 0, 1, 2 }; |
111 | | exp_sz = sizeof(exp_bi) / sizeof(exp_bi[0]); |
112 | | CHECK_EQUAL(exp_sz, bi.size()); |
113 | | for (unsigned i = 0; |
114 | | i < sizeof(exp_bi) / sizeof(exp_bi[0]); |
115 | | ++i) { |
116 | | CHECK_EQUAL(exp_bi[i], bi(i)); |
117 | | } |
| 100 | int exp_ai[] = { 2, 3, 4 }; |
| 101 | exp_sz = sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); |
| 102 | CHECK_EQUAL ( exp_sz, ai.size() ); |
| 103 | for ( unsigned i = 0; |
| 104 | i < sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); |
| 105 | ++i ) { |
| 106 | CHECK_EQUAL ( exp_ai[i], ai ( i ) ); |
| 107 | } |
| 108 | |
| 109 | int exp_bi[] = { 0, 1, 2 }; |
| 110 | exp_sz = sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); |
| 111 | CHECK_EQUAL ( exp_sz, bi.size() ); |
| 112 | for ( unsigned i = 0; |
| 113 | i < sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); |
| 114 | ++i ) { |
| 115 | CHECK_EQUAL ( exp_bi[i], bi ( i ) ); |
| 116 | } |