3 #include <UnitTest++.h>
12 template<mem_layout ALLOC,
bool lgBC>
13 struct LongInt2DFixtureGeneric
16 LongInt2DFixtureGeneric()
19 for (
int i=0; i<10; ++i)
20 for (
int j=0; j<9; ++j)
23 ~LongInt2DFixtureGeneric() {}
26 typedef LongInt2DFixtureGeneric<ARPA_TYPE,false> LongInt2DFixture;
27 typedef LongInt2DFixtureGeneric<ARPA_TYPE,true> LongInt2DFixtureBC;
28 typedef LongInt2DFixtureGeneric<C_TYPE,false> LongInt2DFixtureCType;
29 typedef LongInt2DFixtureGeneric<C_TYPE,true> LongInt2DFixtureCTypeBC;
31 template<mem_layout ALLOC,
bool lgBC>
32 struct LongInt3DFixtureGeneric
35 LongInt3DFixtureGeneric()
38 for (
int i=0; i<10; ++i)
39 for (
int j=0; j<9; ++j)
40 for (
int k=0; k<8; ++k)
41 arr[i][j][k] = i*100+j*10+k;
43 ~LongInt3DFixtureGeneric() {}
46 typedef LongInt3DFixtureGeneric<ARPA_TYPE,false> LongInt3DFixture;
47 typedef LongInt3DFixtureGeneric<ARPA_TYPE,true> LongInt3DFixtureBC;
48 typedef LongInt3DFixtureGeneric<C_TYPE,false> LongInt3DFixtureCType;
49 typedef LongInt3DFixtureGeneric<C_TYPE,true> LongInt3DFixtureCTypeBC;
51 struct RealNum3DFixture
58 ~RealNum3DFixture() {}
61 struct Double3DFixture
71 template<mem_layout ALLOC>
72 struct StructWithConstructor3DFixtureGeneric
81 StructWithConstructor3DFixtureGeneric()
85 ~StructWithConstructor3DFixtureGeneric() {}
88 typedef StructWithConstructor3DFixtureGeneric<ARPA_TYPE> StructWithConstructor3DFixture;
89 typedef StructWithConstructor3DFixtureGeneric<C_TYPE> StructWithConstructor3DFixtureCType;
91 template<mem_layout ALLOC,
bool lgBC>
92 struct LongInt4DFixtureGeneric
95 LongInt4DFixtureGeneric()
98 for (
int i=0; i<10; ++i)
99 for (
int j=0; j<9; ++j)
100 for (
int k=0; k<8; ++k)
101 for (
int l=0; l<7; ++l)
102 arr[i][j][k][l] = i*1000+j*100+k*10+l;
104 ~LongInt4DFixtureGeneric() {}
107 typedef LongInt4DFixtureGeneric<ARPA_TYPE,false> LongInt4DFixture;
108 typedef LongInt4DFixtureGeneric<ARPA_TYPE,true> LongInt4DFixtureBC;
109 typedef LongInt4DFixtureGeneric<C_TYPE,false> LongInt4DFixtureCType;
110 typedef LongInt4DFixtureGeneric<C_TYPE,true> LongInt4DFixtureCTypeBC;
112 template<mem_layout ALLOC,
bool lgBC>
113 struct LongInt5DFixtureGeneric
116 LongInt5DFixtureGeneric()
118 arr.
alloc(10,9,8,7,6);
119 for (
int i=0; i<10; ++i)
120 for (
int j=0; j<9; ++j)
121 for (
int k=0; k<8; ++k)
122 for (
int l=0; l<7; ++l)
123 for (
int m=0; m<6; ++m)
124 arr[i][j][k][l][m] = i*10000+j*1000+k*100+l*10+m;
126 ~LongInt5DFixtureGeneric() {}
129 typedef LongInt5DFixtureGeneric<ARPA_TYPE,false> LongInt5DFixture;
130 typedef LongInt5DFixtureGeneric<ARPA_TYPE,true> LongInt5DFixtureBC;
131 typedef LongInt5DFixtureGeneric<C_TYPE,false> LongInt5DFixtureCType;
132 typedef LongInt5DFixtureGeneric<C_TYPE,true> LongInt5DFixtureCTypeBC;
134 template<mem_layout ALLOC,
bool lgBC>
135 struct LongInt6DFixtureGeneric
138 LongInt6DFixtureGeneric()
140 arr.
alloc(10,9,8,7,6,5);
141 for (
int i=0; i<10; ++i)
142 for (
int j=0; j<9; ++j)
143 for (
int k=0; k<8; ++k)
144 for (
int l=0; l<7; ++l)
145 for (
int m=0; m<6; ++m)
146 for (
int n=0; n<5; ++n)
147 arr[i][j][k][l][m][n] =
148 i*100000+j*10000+k*1000+l*100+m*10+n;
150 ~LongInt6DFixtureGeneric() {}
153 typedef LongInt6DFixtureGeneric<ARPA_TYPE,false> LongInt6DFixture;
154 typedef LongInt6DFixtureGeneric<ARPA_TYPE,true> LongInt6DFixtureBC;
155 typedef LongInt6DFixtureGeneric<C_TYPE,false> LongInt6DFixtureCType;
156 typedef LongInt6DFixtureGeneric<C_TYPE,true> LongInt6DFixtureCTypeBC;
158 struct LongInt6DFixtureExplicitReserve
161 LongInt6DFixtureExplicitReserve()
164 for (
int i=0; i<10; ++i)
167 for (
int j=0; j<9; ++j)
170 for (
int k=0; k<8; ++k)
172 arr.reserve(i,j,k,7);
173 for (
int l=0; l<7; ++l)
175 arr.reserve(i,j,k,l,6);
176 for (
int m=0; m<6; ++m)
178 arr.reserve(i,j,k,l,m,5);
186 ~LongInt6DFixtureExplicitReserve() {}
189 struct TestAllocFixture
191 TestAllocFixture() {}
192 ~TestAllocFixture() {}
214 for (
int i=0; i<2; ++i)
215 for (
int j=0; j<3; ++j)
219 for (
int k=0; k<4; ++k)
223 for (
int l=0; l<5; ++l)
225 p4 = a4.ptr(i,j,k,l);
227 for (
int m=0; m<6; ++m)
229 p5 = a5.ptr(i,j,k,l,m);
231 for (
int n=0; n<7; ++n)
233 p6 = a6.ptr(i,j,k,l,m,n);
245 struct LongInt3DCLayoutFixture
248 LongInt3DCLayoutFixture()
251 for (
int i=0; i<10; ++i)
252 for (
int j=0; j<10; ++j)
253 for (
int k=0; k<10; ++k)
254 arr[i][j][k] = 100*i+10*j+k;
256 ~LongInt3DCLayoutFixture() {}
257 long mytest(
const long a[][10][10])
260 for (
int i=0; i<10; ++i)
261 for (
int j=0; j<10; ++j)
262 for (
int k=0; k<10; ++k)
263 res += ( a[i][j][k] != 100*i+10*j+k );
269 template<mem_layout ALLOC>
270 struct LongInt3DCloneFixtureGeneric
273 LongInt3DCloneFixtureGeneric()
276 for (
int i=0; i<10; ++i)
279 for (
int j=0; j<i+1; ++j)
280 arr.reserve(i,j,j+1);
284 ~LongInt3DCloneFixtureGeneric() {}
287 typedef LongInt3DCloneFixtureGeneric<ARPA_TYPE> LongInt3DCloneFixture;
288 typedef LongInt3DCloneFixtureGeneric<C_TYPE> LongInt3DCloneFixtureCType;
290 template<mem_layout ALLOC>
291 struct LongInt2DEmptyDimGeneric
294 LongInt2DEmptyDimGeneric()
297 for (
int i=1; i<2; ++i)
303 ~LongInt2DEmptyDimGeneric() {}
306 typedef LongInt2DEmptyDimGeneric<ARPA_TYPE> LongInt2DEmptyDim;
307 typedef LongInt2DEmptyDimGeneric<C_TYPE> LongInt2DEmptyDimCType;
309 template<mem_layout ALLOC>
310 struct LongInt3DEmptyDimGeneric
313 LongInt3DEmptyDimGeneric()
316 for (
int i=0; i<2; ++i)
319 for (
int j=1; j<2; ++j)
326 ~LongInt3DEmptyDimGeneric() {}
329 typedef LongInt3DEmptyDimGeneric<ARPA_TYPE> LongInt3DEmptyDim;
330 typedef LongInt3DEmptyDimGeneric<C_TYPE> LongInt3DEmptyDimCType;
332 template<mem_layout ALLOC>
333 struct LongInt4DEmptyDimGeneric
336 LongInt4DEmptyDimGeneric()
339 for (
int i=0; i<2; ++i)
342 for (
int j=0; j<2; ++j)
345 for (
int k=1; k<2; ++k)
347 arr.reserve(i,j,k,2);
353 ~LongInt4DEmptyDimGeneric() {}
356 typedef LongInt4DEmptyDimGeneric<ARPA_TYPE> LongInt4DEmptyDim;
357 typedef LongInt4DEmptyDimGeneric<C_TYPE> LongInt4DEmptyDimCType;
359 template<mem_layout ALLOC>
360 struct LongInt5DEmptyDimGeneric
363 LongInt5DEmptyDimGeneric()
366 for (
int i=0; i<2; ++i)
369 for (
int j=0; j<2; ++j)
372 for (
int k=0; k<2; ++k)
374 arr.reserve(i,j,k,2);
375 for (
int l=1; l<2; ++l)
377 arr.reserve(i,j,k,l,2);
384 ~LongInt5DEmptyDimGeneric() {}
387 typedef LongInt5DEmptyDimGeneric<ARPA_TYPE> LongInt5DEmptyDim;
388 typedef LongInt5DEmptyDimGeneric<C_TYPE> LongInt5DEmptyDimCType;
390 template<mem_layout ALLOC>
391 struct LongInt6DEmptyDimGeneric
394 LongInt6DEmptyDimGeneric()
397 for (
int i=0; i<2; ++i)
400 for (
int j=0; j<2; ++j)
403 for (
int k=0; k<2; ++k)
405 arr.reserve(i,j,k,2);
406 for (
int l=0; l<2; ++l)
408 arr.reserve(i,j,k,l,2);
409 for (
int m=1; m<2; ++m)
411 arr.reserve(i,j,k,l,m,2);
419 ~LongInt6DEmptyDimGeneric() {}
422 typedef LongInt6DEmptyDimGeneric<ARPA_TYPE> LongInt6DEmptyDim;
423 typedef LongInt6DEmptyDimGeneric<C_TYPE> LongInt6DEmptyDimCType;
426 TEST_FIXTURE(LongInt2DFixture,TestIteratorPostIncrement)
433 TEST_FIXTURE(LongInt2DFixture,TestIteratorPreIncrement)
440 TEST_FIXTURE(LongInt2DFixture,TestIteratorPostDecrement)
447 TEST_FIXTURE(LongInt2DFixture,TestIteratorPreDecrement)
454 TEST_FIXTURE(LongInt2DFixture,TestIteratorAddition1)
461 TEST_FIXTURE(LongInt2DFixture,TestIteratorSubtraction1)
468 TEST_FIXTURE(LongInt2DFixture,TestIteratorAddition2)
475 TEST_FIXTURE(LongInt2DFixture,TestIteratorSubtraction2)
482 TEST_FIXTURE(LongInt2DFixture,TestIteratorAddition3)
489 TEST_FIXTURE(LongInt2DFixture,TestIteratorSubtraction3)
496 TEST_FIXTURE(LongInt2DFixture,TestIteratorBrackets)
500 CHECK_EQUAL(57,p[1]);
504 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison1)
511 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison2)
518 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison3)
525 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison4)
532 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison5)
539 TEST_FIXTURE(LongInt2DFixture,TestIteratorComparison6)
548 TEST_FIXTURE(LongInt2DFixtureBC,TestIteratorBoundsCheck)
552 CHECK_THROW(( *++p == 59 ),out_of_range);
556 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorPostIncrement)
563 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorPreIncrement)
570 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorPostDecrement)
577 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorPreDecrement)
584 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorAddition1)
591 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorSubtraction1)
598 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorAddition2)
605 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorSubtraction2)
612 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorAddition3)
619 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorSubtraction3)
626 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorBrackets)
630 CHECK_EQUAL(57,p[1]);
633 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison1)
640 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison2)
647 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison3)
654 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison4)
661 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison5)
668 TEST_FIXTURE(LongInt2DFixture,TestConstIteratorComparison6)
676 TEST_FIXTURE(LongInt2DFixtureBC,TestConstIteratorBoundsCheck)
680 CHECK_THROW(( *++p == 59 ),out_of_range);
683 TEST_FIXTURE(LongInt3DFixture,TestDataEmpty)
688 CHECK_EQUAL( 0UL, arr.size() );
689 CHECK( NULL == arr.data() );
693 TEST_FIXTURE(LongInt3DFixture,TestFill)
696 for (
int i=0; i<10; ++i)
697 for (
int j=0; j<9; ++j)
698 for (
int k=0; k<8; ++k)
699 CHECK_EQUAL(0,arr[i][j][k]);
701 for (
int i=0; i<10; ++i)
702 for (
int j=0; j<9; ++j)
703 for (
int k=0; k<8; ++k)
704 CHECK_EQUAL(-1,arr[i][j][k]);
712 TEST_FIXTURE(LongInt3DFixtureCTypeBC,TestFillCType)
715 for (
int i=0; i<10; ++i)
716 for (
int j=0; j<9; ++j)
717 for (
int k=0; k<8; ++k)
718 CHECK_EQUAL(0.,arr[i][j][k]);
720 for (
int i=0; i<10; ++i)
721 for (
int j=0; j<9; ++j)
722 for (
int k=0; k<8; ++k)
723 CHECK_EQUAL(-1,arr[i][j][k]);
726 TEST_FIXTURE(RealNum3DFixture,TestInvalidRealNum)
729 for (
int i=0; i<10; ++i)
730 for (
int j=0; j<9; ++j)
731 for (
int k=0; k<8; ++k)
732 CHECK(
isnan(arr[i][j][k]));
737 TEST_FIXTURE(Double3DFixture,TestInvalidDouble)
740 for (
int i=0; i<10; ++i)
741 for (
int j=0; j<9; ++j)
742 for (
int k=0; k<8; ++k)
743 CHECK(
isnan(arr[i][j][k]));
749 TEST_FIXTURE(LongInt3DFixture,TestStateDo)
751 const char *fnam =
"tma.872GqS";
752 FILE *io = fopen( fnam,
"wb" );
754 arr.state_do( io,
false );
757 io = fopen( fnam,
"rb" );
759 arr.state_do( io,
true );
762 CHECK_EQUAL(304,arr[3][0][4]);
765 TEST_FIXTURE(LongInt3DFixtureCType,TestStateDoCType)
767 const char *fnam =
"tma.872GqS";
768 FILE *io = fopen( fnam,
"wb" );
770 arr.state_do( io,
false );
773 io = fopen( fnam,
"rb" );
775 arr.state_do( io,
true );
778 CHECK_EQUAL(304,arr[3][0][4]);
783 TEST_FIXTURE(LongInt2DFixture,Test2DIndexedValue)
785 CHECK_EQUAL(98,arr[9][8]);
786 CHECK_EQUAL(37,*arr.ptr(3,7));
790 const long& q = (*carr)[7][5];
793 TEST_FIXTURE(LongInt3DFixture,Test3DIndexedValue)
795 CHECK_EQUAL(987,arr[9][8][7]);
796 CHECK_EQUAL(137,*arr.ptr(1,3,7));
800 const long& q = (*carr)[7][5][6];
803 TEST_FIXTURE(LongInt4DFixture,Test4DIndexedValue)
805 CHECK_EQUAL(9876,arr[9][8][7][6]);
806 CHECK_EQUAL(1342,*arr.ptr(1,3,4,2));
809 CHECK_EQUAL(4620,*p);
810 const long& q = (*carr)[7][5][6][3];
813 TEST_FIXTURE(LongInt5DFixture,Test5DIndexedValue)
815 CHECK_EQUAL(98765,arr[9][8][7][6][5]);
816 CHECK_EQUAL(10342,*arr.ptr(1,0,3,4,2));
819 CHECK_EQUAL(46201,*p);
820 const long& q = (*carr)[7][5][6][3][2];
821 CHECK_EQUAL(75632,q);
823 TEST_FIXTURE(LongInt6DFixture,Test6DIndexedValue)
825 CHECK_EQUAL(987654,arr[9][8][7][6][5][4]);
826 CHECK_EQUAL(106423,*arr.ptr(1,0,6,4,2,3));
829 CHECK_EQUAL(462013,*p);
830 const long& q = (*carr)[7][5][6][3][2][1];
831 CHECK_EQUAL(756321,q);
837 TEST_FIXTURE(LongInt2DFixture,Test2DAtOutOfBounds)
839 CHECK_THROW(arr.at(m1,1),out_of_range);
840 CHECK_THROW(arr.at(10,1),out_of_range);
841 CHECK_THROW(arr.at(7,m1),out_of_range);
842 CHECK_THROW(arr.at(7,9),out_of_range);
844 CHECK_THROW(carr->at(m1,1),out_of_range);
845 CHECK_THROW(carr->at(10,1),out_of_range);
846 CHECK_THROW(carr->at(7,m1),out_of_range);
847 CHECK_THROW(carr->at(7,9),out_of_range);
849 TEST_FIXTURE(LongInt3DFixture,Test3DAtOutOfBounds)
851 CHECK_THROW(arr.at(m1,1,2),out_of_range);
852 CHECK_THROW(arr.at(10,1,2),out_of_range);
853 CHECK_THROW(arr.at(7,m1,3),out_of_range);
854 CHECK_THROW(arr.at(7,9,3),out_of_range);
855 CHECK_THROW(arr.at(7,3,m1),out_of_range);
856 CHECK_THROW(arr.at(7,3,8),out_of_range);
858 CHECK_THROW(carr->at(m1,1,2),out_of_range);
859 CHECK_THROW(carr->at(10,1,2),out_of_range);
860 CHECK_THROW(carr->at(7,m1,3),out_of_range);
861 CHECK_THROW(carr->at(7,9,3),out_of_range);
862 CHECK_THROW(carr->at(7,3,m1),out_of_range);
863 CHECK_THROW(carr->at(7,3,8),out_of_range);
865 TEST_FIXTURE(LongInt4DFixture,Test4DAtOutOfBounds)
867 CHECK_THROW(arr.at(m1,1,2,3),out_of_range);
868 CHECK_THROW(arr.at(10,1,2,3),out_of_range);
869 CHECK_THROW(arr.at(7,m1,3,2),out_of_range);
870 CHECK_THROW(arr.at(7,9,3,2),out_of_range);
871 CHECK_THROW(arr.at(7,3,m1,1),out_of_range);
872 CHECK_THROW(arr.at(7,3,8,1),out_of_range);
873 CHECK_THROW(arr.at(7,3,1,m1),out_of_range);
874 CHECK_THROW(arr.at(7,3,1,7),out_of_range);
876 CHECK_THROW(carr->at(m1,1,2,3),out_of_range);
877 CHECK_THROW(carr->at(10,1,2,3),out_of_range);
878 CHECK_THROW(carr->at(7,m1,3,2),out_of_range);
879 CHECK_THROW(carr->at(7,9,3,2),out_of_range);
880 CHECK_THROW(carr->at(7,3,m1,1),out_of_range);
881 CHECK_THROW(carr->at(7,3,8,1),out_of_range);
882 CHECK_THROW(carr->at(7,3,1,m1),out_of_range);
883 CHECK_THROW(carr->at(7,3,1,7),out_of_range);
885 TEST_FIXTURE(LongInt5DFixture,Test5DAtOutOfBounds)
887 CHECK_THROW(arr.at(m1,1,2,3,4),out_of_range);
888 CHECK_THROW(arr.at(10,1,2,3,4),out_of_range);
889 CHECK_THROW(arr.at(7,m1,3,2,4),out_of_range);
890 CHECK_THROW(arr.at(7,9,3,2,4),out_of_range);
891 CHECK_THROW(arr.at(7,3,m1,1,0),out_of_range);
892 CHECK_THROW(arr.at(7,3,8,1,0),out_of_range);
893 CHECK_THROW(arr.at(7,3,1,m1,2),out_of_range);
894 CHECK_THROW(arr.at(7,3,1,7,2),out_of_range);
895 CHECK_THROW(arr.at(7,3,1,2,m1),out_of_range);
896 CHECK_THROW(arr.at(7,3,1,2,6),out_of_range);
898 CHECK_THROW(carr->at(m1,1,2,3,4),out_of_range);
899 CHECK_THROW(carr->at(10,1,2,3,4),out_of_range);
900 CHECK_THROW(carr->at(7,m1,3,2,4),out_of_range);
901 CHECK_THROW(carr->at(7,9,3,2,4),out_of_range);
902 CHECK_THROW(carr->at(7,3,m1,1,0),out_of_range);
903 CHECK_THROW(carr->at(7,3,8,1,0),out_of_range);
904 CHECK_THROW(carr->at(7,3,1,m1,2),out_of_range);
905 CHECK_THROW(carr->at(7,3,1,7,2),out_of_range);
906 CHECK_THROW(carr->at(7,3,1,2,m1),out_of_range);
907 CHECK_THROW(carr->at(7,3,1,2,6),out_of_range);
909 TEST_FIXTURE(LongInt6DFixture,Test6DAtOutOfBounds)
911 CHECK_THROW(arr.at(m1,1,2,3,4,0),out_of_range);
912 CHECK_THROW(arr.at(10,1,2,3,4,0),out_of_range);
913 CHECK_THROW(arr.at(7,m1,3,2,4,1),out_of_range);
914 CHECK_THROW(arr.at(7,9,3,2,4,1),out_of_range);
915 CHECK_THROW(arr.at(7,3,m1,1,0,2),out_of_range);
916 CHECK_THROW(arr.at(7,3,8,1,0,2),out_of_range);
917 CHECK_THROW(arr.at(7,3,1,m1,2,0),out_of_range);
918 CHECK_THROW(arr.at(7,3,1,7,2,0),out_of_range);
919 CHECK_THROW(arr.at(7,4,1,2,m1,3),out_of_range);
920 CHECK_THROW(arr.at(7,4,1,2,6,3),out_of_range);
921 CHECK_THROW(arr.at(7,4,1,2,3,m1),out_of_range);
922 CHECK_THROW(arr.at(7,4,1,2,3,5),out_of_range);
924 CHECK_THROW(carr->at(m1,1,2,3,4,0),out_of_range);
925 CHECK_THROW(carr->at(10,1,2,3,4,0),out_of_range);
926 CHECK_THROW(carr->at(7,m1,3,2,4,1),out_of_range);
927 CHECK_THROW(carr->at(7,9,3,2,4,1),out_of_range);
928 CHECK_THROW(carr->at(7,3,m1,1,0,2),out_of_range);
929 CHECK_THROW(carr->at(7,3,8,1,0,2),out_of_range);
930 CHECK_THROW(carr->at(7,3,1,m1,2,0),out_of_range);
931 CHECK_THROW(carr->at(7,3,1,7,2,0),out_of_range);
932 CHECK_THROW(carr->at(7,4,1,2,m1,3),out_of_range);
933 CHECK_THROW(carr->at(7,4,1,2,6,3),out_of_range);
934 CHECK_THROW(carr->at(7,4,1,2,3,m1),out_of_range);
935 CHECK_THROW(carr->at(7,4,1,2,3,5),out_of_range);
938 TEST_FIXTURE(LongInt2DFixtureBC,Test2DOutOfBounds)
940 CHECK_THROW(arr[m1][1],out_of_range);
941 CHECK_THROW(arr[10][1],out_of_range);
942 CHECK_THROW(arr[7][m1],out_of_range);
943 CHECK_THROW(arr[7][9],out_of_range);
944 CHECK_THROW(arr.ptr(m1,1),out_of_range);
945 CHECK_THROW(arr.ptr(10,1),out_of_range);
947 CHECK_THROW((*carr)[m1][1],out_of_range);
948 CHECK_THROW((*carr)[10][1],out_of_range);
949 CHECK_THROW((*carr)[7][m1],out_of_range);
950 CHECK_THROW((*carr)[7][9],out_of_range);
952 TEST_FIXTURE(LongInt3DFixtureBC,Test3DOutOfBounds)
954 CHECK_THROW(arr[m1][1][2],out_of_range);
955 CHECK_THROW(arr[10][1][2],out_of_range);
956 CHECK_THROW(arr[7][m1][3],out_of_range);
957 CHECK_THROW(arr[7][9][3],out_of_range);
958 CHECK_THROW(arr[7][3][m1],out_of_range);
959 CHECK_THROW(arr[7][3][8],out_of_range);
960 CHECK_THROW(arr.ptr(m1,1,2),out_of_range);
961 CHECK_THROW(arr.ptr(10,1,2),out_of_range);
962 CHECK_THROW(arr.ptr(7,m1,3),out_of_range);
963 CHECK_THROW(arr.ptr(7,9,3),out_of_range);
965 CHECK_THROW((*carr)[m1][1][2],out_of_range);
966 CHECK_THROW((*carr)[10][1][2],out_of_range);
967 CHECK_THROW((*carr)[7][m1][3],out_of_range);
968 CHECK_THROW((*carr)[7][9][3],out_of_range);
969 CHECK_THROW((*carr)[7][3][m1],out_of_range);
970 CHECK_THROW((*carr)[7][3][8],out_of_range);
972 TEST_FIXTURE(LongInt4DFixtureBC,Test4DOutOfBounds)
974 CHECK_THROW(arr[m1][1][2][3],out_of_range);
975 CHECK_THROW(arr[10][1][2][3],out_of_range);
976 CHECK_THROW(arr[7][m1][3][2],out_of_range);
977 CHECK_THROW(arr[7][9][3][2],out_of_range);
978 CHECK_THROW(arr[7][3][m1][1],out_of_range);
979 CHECK_THROW(arr[7][3][8][1],out_of_range);
980 CHECK_THROW(arr[7][3][1][m1],out_of_range);
981 CHECK_THROW(arr[7][3][1][7],out_of_range);
982 CHECK_THROW(arr.ptr(m1,1,2,3),out_of_range);
983 CHECK_THROW(arr.ptr(10,1,2,3),out_of_range);
984 CHECK_THROW(arr.ptr(7,m1,3,2),out_of_range);
985 CHECK_THROW(arr.ptr(7,9,3,2),out_of_range);
986 CHECK_THROW(arr.ptr(7,3,m1,1),out_of_range);
987 CHECK_THROW(arr.ptr(7,3,8,1),out_of_range);
989 CHECK_THROW((*carr)[m1][1][2][3],out_of_range);
990 CHECK_THROW((*carr)[10][1][2][3],out_of_range);
991 CHECK_THROW((*carr)[7][m1][3][2],out_of_range);
992 CHECK_THROW((*carr)[7][9][3][2],out_of_range);
993 CHECK_THROW((*carr)[7][3][m1][1],out_of_range);
994 CHECK_THROW((*carr)[7][3][8][1],out_of_range);
995 CHECK_THROW((*carr)[7][3][1][m1],out_of_range);
996 CHECK_THROW((*carr)[7][3][1][7],out_of_range);
998 TEST_FIXTURE(LongInt5DFixtureBC,Test5DOutOfBounds)
1000 CHECK_THROW(arr[m1][1][2][3][4],out_of_range);
1001 CHECK_THROW(arr[10][1][2][3][4],out_of_range);
1002 CHECK_THROW(arr[7][m1][3][2][4],out_of_range);
1003 CHECK_THROW(arr[7][9][3][2][4],out_of_range);
1004 CHECK_THROW(arr[7][3][m1][1][0],out_of_range);
1005 CHECK_THROW(arr[7][3][8][1][0],out_of_range);
1006 CHECK_THROW(arr[7][3][1][m1][2],out_of_range);
1007 CHECK_THROW(arr[7][3][1][7][2],out_of_range);
1008 CHECK_THROW(arr[7][3][1][2][m1],out_of_range);
1009 CHECK_THROW(arr[7][3][1][2][6],out_of_range);
1010 CHECK_THROW(arr.ptr(m1,1,2,3,4),out_of_range);
1011 CHECK_THROW(arr.ptr(10,1,2,3,4),out_of_range);
1012 CHECK_THROW(arr.ptr(7,m1,3,2,4),out_of_range);
1013 CHECK_THROW(arr.ptr(7,9,3,2,4),out_of_range);
1014 CHECK_THROW(arr.ptr(7,3,m1,1,0),out_of_range);
1015 CHECK_THROW(arr.ptr(7,3,8,1,0),out_of_range);
1016 CHECK_THROW(arr.ptr(7,3,1,m1,2),out_of_range);
1017 CHECK_THROW(arr.ptr(7,3,1,7,2),out_of_range);
1019 CHECK_THROW((*carr)[m1][1][2][3][4],out_of_range);
1020 CHECK_THROW((*carr)[10][1][2][3][4],out_of_range);
1021 CHECK_THROW((*carr)[7][m1][3][2][4],out_of_range);
1022 CHECK_THROW((*carr)[7][9][3][2][4],out_of_range);
1023 CHECK_THROW((*carr)[7][3][m1][1][0],out_of_range);
1024 CHECK_THROW((*carr)[7][3][8][1][0],out_of_range);
1025 CHECK_THROW((*carr)[7][3][1][m1][2],out_of_range);
1026 CHECK_THROW((*carr)[7][3][1][7][2],out_of_range);
1027 CHECK_THROW((*carr)[7][3][1][2][m1],out_of_range);
1028 CHECK_THROW((*carr)[7][3][1][2][6],out_of_range);
1030 TEST_FIXTURE(LongInt6DFixtureBC,Test6DOutOfBounds)
1032 CHECK_THROW(arr[m1][1][2][3][4][0],out_of_range);
1033 CHECK_THROW(arr[10][1][2][3][4][0],out_of_range);
1034 CHECK_THROW(arr[7][m1][3][2][4][1],out_of_range);
1035 CHECK_THROW(arr[7][9][3][2][4][1],out_of_range);
1036 CHECK_THROW(arr[7][3][m1][1][0][2],out_of_range);
1037 CHECK_THROW(arr[7][3][8][1][0][2],out_of_range);
1038 CHECK_THROW(arr[7][3][1][m1][2][0],out_of_range);
1039 CHECK_THROW(arr[7][3][1][7][2][0],out_of_range);
1040 CHECK_THROW(arr[7][4][1][2][m1][3],out_of_range);
1041 CHECK_THROW(arr[7][4][1][2][6][3],out_of_range);
1042 CHECK_THROW(arr[7][4][1][2][3][m1],out_of_range);
1043 CHECK_THROW(arr[7][4][1][2][3][5],out_of_range);
1044 CHECK_THROW(arr.ptr(m1,1,2,3,4,0),out_of_range);
1045 CHECK_THROW(arr.ptr(10,1,2,3,4,0),out_of_range);
1046 CHECK_THROW(arr.ptr(7,m1,3,2,4,1),out_of_range);
1047 CHECK_THROW(arr.ptr(7,9,3,2,4,1),out_of_range);
1048 CHECK_THROW(arr.ptr(7,3,m1,1,0,2),out_of_range);
1049 CHECK_THROW(arr.ptr(7,3,8,1,0,2),out_of_range);
1050 CHECK_THROW(arr.ptr(7,3,1,m1,2,0),out_of_range);
1051 CHECK_THROW(arr.ptr(7,3,1,7,2,0),out_of_range);
1052 CHECK_THROW(arr.ptr(7,4,1,2,m1,3),out_of_range);
1053 CHECK_THROW(arr.ptr(7,4,1,2,6,3),out_of_range);
1055 CHECK_THROW((*carr)[m1][1][2][3][4][0],out_of_range);
1056 CHECK_THROW((*carr)[10][1][2][3][4][0],out_of_range);
1057 CHECK_THROW((*carr)[7][m1][3][2][4][1],out_of_range);
1058 CHECK_THROW((*carr)[7][9][3][2][4][1],out_of_range);
1059 CHECK_THROW((*carr)[7][3][m1][1][0][2],out_of_range);
1060 CHECK_THROW((*carr)[7][3][8][1][0][2],out_of_range);
1061 CHECK_THROW((*carr)[7][3][1][m1][2][0],out_of_range);
1062 CHECK_THROW((*carr)[7][3][1][7][2][0],out_of_range);
1063 CHECK_THROW((*carr)[7][4][1][2][m1][3],out_of_range);
1064 CHECK_THROW((*carr)[7][4][1][2][6][3],out_of_range);
1065 CHECK_THROW((*carr)[7][4][1][2][3][m1],out_of_range);
1066 CHECK_THROW((*carr)[7][4][1][2][3][5],out_of_range);
1070 TEST_FIXTURE(LongInt2DFixtureCType,Test2DIndexedValueCType)
1072 CHECK_EQUAL(98,arr[9][8]);
1073 CHECK_EQUAL(37,*arr.ptr(3,7));
1077 const long& q = (*carr)[7][5];
1080 TEST_FIXTURE(LongInt3DFixtureCType,Test3DIndexedValueCType)
1082 CHECK_EQUAL(987,arr[9][8][7]);
1083 CHECK_EQUAL(137,*arr.ptr(1,3,7));
1086 CHECK_EQUAL(462,*p);
1087 const long& q = (*carr)[7][5][6];
1090 TEST_FIXTURE(LongInt4DFixtureCType,Test4DIndexedValueCType)
1092 CHECK_EQUAL(9876,arr[9][8][7][6]);
1093 CHECK_EQUAL(1342,*arr.ptr(1,3,4,2));
1096 CHECK_EQUAL(4620,*p);
1097 const long& q = (*carr)[7][5][6][3];
1098 CHECK_EQUAL(7563,q);
1100 TEST_FIXTURE(LongInt5DFixtureCType,Test5DIndexedValueCType)
1102 CHECK_EQUAL(98765,arr[9][8][7][6][5]);
1103 CHECK_EQUAL(10342,*arr.ptr(1,0,3,4,2));
1106 CHECK_EQUAL(46201,*p);
1107 const long& q = (*carr)[7][5][6][3][2];
1108 CHECK_EQUAL(75632,q);
1110 TEST_FIXTURE(LongInt6DFixtureCType,Test6DIndexedValueCType)
1112 CHECK_EQUAL(987654,arr[9][8][7][6][5][4]);
1113 CHECK_EQUAL(106423,*arr.ptr(1,0,6,4,2,3));
1116 CHECK_EQUAL(462013,*p);
1117 const long& q = (*carr)[7][5][6][3][2][1];
1118 CHECK_EQUAL(756321,q);
1121 TEST_FIXTURE(LongInt2DFixtureCType,Test2DAtOutOfBoundsCType)
1123 CHECK_THROW(arr.at(m1,1),out_of_range);
1124 CHECK_THROW(arr.at(10,1),out_of_range);
1125 CHECK_THROW(arr.at(7,m1),out_of_range);
1126 CHECK_THROW(arr.at(7,9),out_of_range);
1128 CHECK_THROW(carr->at(m1,1),out_of_range);
1129 CHECK_THROW(carr->at(10,1),out_of_range);
1130 CHECK_THROW(carr->at(7,m1),out_of_range);
1131 CHECK_THROW(carr->at(7,9),out_of_range);
1133 TEST_FIXTURE(LongInt3DFixtureCType,Test3DAtOutOfBoundsCType)
1135 CHECK_THROW(arr.at(m1,1,2),out_of_range);
1136 CHECK_THROW(arr.at(10,1,2),out_of_range);
1137 CHECK_THROW(arr.at(7,m1,3),out_of_range);
1138 CHECK_THROW(arr.at(7,9,3),out_of_range);
1139 CHECK_THROW(arr.at(7,3,m1),out_of_range);
1140 CHECK_THROW(arr.at(7,3,8),out_of_range);
1142 CHECK_THROW(carr->at(m1,1,2),out_of_range);
1143 CHECK_THROW(carr->at(10,1,2),out_of_range);
1144 CHECK_THROW(carr->at(7,m1,3),out_of_range);
1145 CHECK_THROW(carr->at(7,9,3),out_of_range);
1146 CHECK_THROW(carr->at(7,3,m1),out_of_range);
1147 CHECK_THROW(carr->at(7,3,8),out_of_range);
1149 TEST_FIXTURE(LongInt4DFixtureCType,Test4DAtOutOfBoundsCType)
1151 CHECK_THROW(arr.at(m1,1,2,3),out_of_range);
1152 CHECK_THROW(arr.at(10,1,2,3),out_of_range);
1153 CHECK_THROW(arr.at(7,m1,3,2),out_of_range);
1154 CHECK_THROW(arr.at(7,9,3,2),out_of_range);
1155 CHECK_THROW(arr.at(7,3,m1,1),out_of_range);
1156 CHECK_THROW(arr.at(7,3,8,1),out_of_range);
1157 CHECK_THROW(arr.at(7,3,1,m1),out_of_range);
1158 CHECK_THROW(arr.at(7,3,1,7),out_of_range);
1160 CHECK_THROW(carr->at(m1,1,2,3),out_of_range);
1161 CHECK_THROW(carr->at(10,1,2,3),out_of_range);
1162 CHECK_THROW(carr->at(7,m1,3,2),out_of_range);
1163 CHECK_THROW(carr->at(7,9,3,2),out_of_range);
1164 CHECK_THROW(carr->at(7,3,m1,1),out_of_range);
1165 CHECK_THROW(carr->at(7,3,8,1),out_of_range);
1166 CHECK_THROW(carr->at(7,3,1,m1),out_of_range);
1167 CHECK_THROW(carr->at(7,3,1,7),out_of_range);
1169 TEST_FIXTURE(LongInt5DFixtureCType,Test5DAtOutOfBoundsCType)
1171 CHECK_THROW(arr.at(m1,1,2,3,4),out_of_range);
1172 CHECK_THROW(arr.at(10,1,2,3,4),out_of_range);
1173 CHECK_THROW(arr.at(7,m1,3,2,4),out_of_range);
1174 CHECK_THROW(arr.at(7,9,3,2,4),out_of_range);
1175 CHECK_THROW(arr.at(7,3,m1,1,0),out_of_range);
1176 CHECK_THROW(arr.at(7,3,8,1,0),out_of_range);
1177 CHECK_THROW(arr.at(7,3,1,m1,2),out_of_range);
1178 CHECK_THROW(arr.at(7,3,1,7,2),out_of_range);
1179 CHECK_THROW(arr.at(7,3,1,2,m1),out_of_range);
1180 CHECK_THROW(arr.at(7,3,1,2,6),out_of_range);
1182 CHECK_THROW(carr->at(m1,1,2,3,4),out_of_range);
1183 CHECK_THROW(carr->at(10,1,2,3,4),out_of_range);
1184 CHECK_THROW(carr->at(7,m1,3,2,4),out_of_range);
1185 CHECK_THROW(carr->at(7,9,3,2,4),out_of_range);
1186 CHECK_THROW(carr->at(7,3,m1,1,0),out_of_range);
1187 CHECK_THROW(carr->at(7,3,8,1,0),out_of_range);
1188 CHECK_THROW(carr->at(7,3,1,m1,2),out_of_range);
1189 CHECK_THROW(carr->at(7,3,1,7,2),out_of_range);
1190 CHECK_THROW(carr->at(7,3,1,2,m1),out_of_range);
1191 CHECK_THROW(carr->at(7,3,1,2,6),out_of_range);
1193 TEST_FIXTURE(LongInt6DFixtureCType,Test6DAtOutOfBoundsCType)
1195 CHECK_THROW(arr.at(m1,1,2,3,4,0),out_of_range);
1196 CHECK_THROW(arr.at(10,1,2,3,4,0),out_of_range);
1197 CHECK_THROW(arr.at(7,m1,3,2,4,1),out_of_range);
1198 CHECK_THROW(arr.at(7,9,3,2,4,1),out_of_range);
1199 CHECK_THROW(arr.at(7,3,m1,1,0,2),out_of_range);
1200 CHECK_THROW(arr.at(7,3,8,1,0,2),out_of_range);
1201 CHECK_THROW(arr.at(7,3,1,m1,2,0),out_of_range);
1202 CHECK_THROW(arr.at(7,3,1,7,2,0),out_of_range);
1203 CHECK_THROW(arr.at(7,4,1,2,m1,3),out_of_range);
1204 CHECK_THROW(arr.at(7,4,1,2,6,3),out_of_range);
1205 CHECK_THROW(arr.at(7,4,1,2,3,m1),out_of_range);
1206 CHECK_THROW(arr.at(7,4,1,2,3,5),out_of_range);
1208 CHECK_THROW(carr->at(m1,1,2,3,4,0),out_of_range);
1209 CHECK_THROW(carr->at(10,1,2,3,4,0),out_of_range);
1210 CHECK_THROW(carr->at(7,m1,3,2,4,1),out_of_range);
1211 CHECK_THROW(carr->at(7,9,3,2,4,1),out_of_range);
1212 CHECK_THROW(carr->at(7,3,m1,1,0,2),out_of_range);
1213 CHECK_THROW(carr->at(7,3,8,1,0,2),out_of_range);
1214 CHECK_THROW(carr->at(7,3,1,m1,2,0),out_of_range);
1215 CHECK_THROW(carr->at(7,3,1,7,2,0),out_of_range);
1216 CHECK_THROW(carr->at(7,4,1,2,m1,3),out_of_range);
1217 CHECK_THROW(carr->at(7,4,1,2,6,3),out_of_range);
1218 CHECK_THROW(carr->at(7,4,1,2,3,m1),out_of_range);
1219 CHECK_THROW(carr->at(7,4,1,2,3,5),out_of_range);
1222 TEST_FIXTURE(LongInt2DFixtureCTypeBC,Test2DOutOfBoundsCType)
1224 CHECK_THROW(arr[m1][1],out_of_range);
1225 CHECK_THROW(arr[10][1],out_of_range);
1226 CHECK_THROW(arr[7][m1],out_of_range);
1227 CHECK_THROW(arr[7][9],out_of_range);
1228 CHECK_THROW(arr.ptr(m1,1),out_of_range);
1229 CHECK_THROW(arr.ptr(10,1),out_of_range);
1231 CHECK_THROW((*carr)[m1][1],out_of_range);
1232 CHECK_THROW((*carr)[10][1],out_of_range);
1233 CHECK_THROW((*carr)[7][m1],out_of_range);
1234 CHECK_THROW((*carr)[7][9],out_of_range);
1236 TEST_FIXTURE(LongInt3DFixtureCTypeBC,Test3DOutOfBoundsCType)
1238 CHECK_THROW(arr[m1][1][2],out_of_range);
1239 CHECK_THROW(arr[10][1][2],out_of_range);
1240 CHECK_THROW(arr[7][m1][3],out_of_range);
1241 CHECK_THROW(arr[7][9][3],out_of_range);
1242 CHECK_THROW(arr[7][3][m1],out_of_range);
1243 CHECK_THROW(arr[7][3][8],out_of_range);
1244 CHECK_THROW(arr.ptr(m1,1,2),out_of_range);
1245 CHECK_THROW(arr.ptr(10,1,2),out_of_range);
1246 CHECK_THROW(arr.ptr(7,m1,3),out_of_range);
1247 CHECK_THROW(arr.ptr(7,9,3),out_of_range);
1249 CHECK_THROW((*carr)[m1][1][2],out_of_range);
1250 CHECK_THROW((*carr)[10][1][2],out_of_range);
1251 CHECK_THROW((*carr)[7][m1][3],out_of_range);
1252 CHECK_THROW((*carr)[7][9][3],out_of_range);
1253 CHECK_THROW((*carr)[7][3][m1],out_of_range);
1254 CHECK_THROW((*carr)[7][3][8],out_of_range);
1256 TEST_FIXTURE(LongInt4DFixtureCTypeBC,Test4DOutOfBoundsCType)
1258 CHECK_THROW(arr[m1][1][2][3],out_of_range);
1259 CHECK_THROW(arr[10][1][2][3],out_of_range);
1260 CHECK_THROW(arr[7][m1][3][2],out_of_range);
1261 CHECK_THROW(arr[7][9][3][2],out_of_range);
1262 CHECK_THROW(arr[7][3][m1][1],out_of_range);
1263 CHECK_THROW(arr[7][3][8][1],out_of_range);
1264 CHECK_THROW(arr[7][3][1][m1],out_of_range);
1265 CHECK_THROW(arr[7][3][1][7],out_of_range);
1266 CHECK_THROW(arr.ptr(m1,1,2,3),out_of_range);
1267 CHECK_THROW(arr.ptr(10,1,2,3),out_of_range);
1268 CHECK_THROW(arr.ptr(7,m1,3,2),out_of_range);
1269 CHECK_THROW(arr.ptr(7,9,3,2),out_of_range);
1270 CHECK_THROW(arr.ptr(7,3,m1,1),out_of_range);
1271 CHECK_THROW(arr.ptr(7,3,8,1),out_of_range);
1273 CHECK_THROW((*carr)[m1][1][2][3],out_of_range);
1274 CHECK_THROW((*carr)[10][1][2][3],out_of_range);
1275 CHECK_THROW((*carr)[7][m1][3][2],out_of_range);
1276 CHECK_THROW((*carr)[7][9][3][2],out_of_range);
1277 CHECK_THROW((*carr)[7][3][m1][1],out_of_range);
1278 CHECK_THROW((*carr)[7][3][8][1],out_of_range);
1279 CHECK_THROW((*carr)[7][3][1][m1],out_of_range);
1280 CHECK_THROW((*carr)[7][3][1][7],out_of_range);
1282 TEST_FIXTURE(LongInt5DFixtureCTypeBC,Test5DOutOfBoundsCType)
1284 CHECK_THROW(arr[m1][1][2][3][4],out_of_range);
1285 CHECK_THROW(arr[10][1][2][3][4],out_of_range);
1286 CHECK_THROW(arr[7][m1][3][2][4],out_of_range);
1287 CHECK_THROW(arr[7][9][3][2][4],out_of_range);
1288 CHECK_THROW(arr[7][3][m1][1][0],out_of_range);
1289 CHECK_THROW(arr[7][3][8][1][0],out_of_range);
1290 CHECK_THROW(arr[7][3][1][m1][2],out_of_range);
1291 CHECK_THROW(arr[7][3][1][7][2],out_of_range);
1292 CHECK_THROW(arr[7][3][1][2][m1],out_of_range);
1293 CHECK_THROW(arr[7][3][1][2][6],out_of_range);
1294 CHECK_THROW(arr.ptr(m1,1,2,3,4),out_of_range);
1295 CHECK_THROW(arr.ptr(10,1,2,3,4),out_of_range);
1296 CHECK_THROW(arr.ptr(7,m1,3,2,4),out_of_range);
1297 CHECK_THROW(arr.ptr(7,9,3,2,4),out_of_range);
1298 CHECK_THROW(arr.ptr(7,3,m1,1,0),out_of_range);
1299 CHECK_THROW(arr.ptr(7,3,8,1,0),out_of_range);
1300 CHECK_THROW(arr.ptr(7,3,1,m1,2),out_of_range);
1301 CHECK_THROW(arr.ptr(7,3,1,7,2),out_of_range);
1303 CHECK_THROW((*carr)[m1][1][2][3][4],out_of_range);
1304 CHECK_THROW((*carr)[10][1][2][3][4],out_of_range);
1305 CHECK_THROW((*carr)[7][m1][3][2][4],out_of_range);
1306 CHECK_THROW((*carr)[7][9][3][2][4],out_of_range);
1307 CHECK_THROW((*carr)[7][3][m1][1][0],out_of_range);
1308 CHECK_THROW((*carr)[7][3][8][1][0],out_of_range);
1309 CHECK_THROW((*carr)[7][3][1][m1][2],out_of_range);
1310 CHECK_THROW((*carr)[7][3][1][7][2],out_of_range);
1311 CHECK_THROW((*carr)[7][3][1][2][m1],out_of_range);
1312 CHECK_THROW((*carr)[7][3][1][2][6],out_of_range);
1314 TEST_FIXTURE(LongInt6DFixtureCTypeBC,Test6DOutOfBoundsCType)
1316 CHECK_THROW(arr[m1][1][2][3][4][0],out_of_range);
1317 CHECK_THROW(arr[10][1][2][3][4][0],out_of_range);
1318 CHECK_THROW(arr[7][m1][3][2][4][1],out_of_range);
1319 CHECK_THROW(arr[7][9][3][2][4][1],out_of_range);
1320 CHECK_THROW(arr[7][3][m1][1][0][2],out_of_range);
1321 CHECK_THROW(arr[7][3][8][1][0][2],out_of_range);
1322 CHECK_THROW(arr[7][3][1][m1][2][0],out_of_range);
1323 CHECK_THROW(arr[7][3][1][7][2][0],out_of_range);
1324 CHECK_THROW(arr[7][4][1][2][m1][3],out_of_range);
1325 CHECK_THROW(arr[7][4][1][2][6][3],out_of_range);
1326 CHECK_THROW(arr[7][4][1][2][3][m1],out_of_range);
1327 CHECK_THROW(arr[7][4][1][2][3][5],out_of_range);
1328 CHECK_THROW(arr.ptr(m1,1,2,3,4,0),out_of_range);
1329 CHECK_THROW(arr.ptr(10,1,2,3,4,0),out_of_range);
1330 CHECK_THROW(arr.ptr(7,m1,3,2,4,1),out_of_range);
1331 CHECK_THROW(arr.ptr(7,9,3,2,4,1),out_of_range);
1332 CHECK_THROW(arr.ptr(7,3,m1,1,0,2),out_of_range);
1333 CHECK_THROW(arr.ptr(7,3,8,1,0,2),out_of_range);
1334 CHECK_THROW(arr.ptr(7,3,1,m1,2,0),out_of_range);
1335 CHECK_THROW(arr.ptr(7,3,1,7,2,0),out_of_range);
1336 CHECK_THROW(arr.ptr(7,4,1,2,m1,3),out_of_range);
1337 CHECK_THROW(arr.ptr(7,4,1,2,6,3),out_of_range);
1339 CHECK_THROW((*carr)[m1][1][2][3][4][0],out_of_range);
1340 CHECK_THROW((*carr)[10][1][2][3][4][0],out_of_range);
1341 CHECK_THROW((*carr)[7][m1][3][2][4][1],out_of_range);
1342 CHECK_THROW((*carr)[7][9][3][2][4][1],out_of_range);
1343 CHECK_THROW((*carr)[7][3][m1][1][0][2],out_of_range);
1344 CHECK_THROW((*carr)[7][3][8][1][0][2],out_of_range);
1345 CHECK_THROW((*carr)[7][3][1][m1][2][0],out_of_range);
1346 CHECK_THROW((*carr)[7][3][1][7][2][0],out_of_range);
1347 CHECK_THROW((*carr)[7][4][1][2][m1][3],out_of_range);
1348 CHECK_THROW((*carr)[7][4][1][2][6][3],out_of_range);
1349 CHECK_THROW((*carr)[7][4][1][2][3][m1],out_of_range);
1350 CHECK_THROW((*carr)[7][4][1][2][3][5],out_of_range);
1355 TEST_FIXTURE(StructWithConstructor3DFixture,TestConstructorExecuted)
1358 CHECK_EQUAL(23,p1->n);
1360 CHECK_EQUAL(23,p2->n);
1362 TEST_FIXTURE(StructWithConstructor3DFixtureCType,TestConstructorExecutedCType)
1365 CHECK_EQUAL(23,p1->n);
1367 CHECK_EQUAL(23,p2->n);
1371 TEST_FIXTURE(LongInt3DFixtureBC,TestSize)
1373 CHECK_EQUAL((
size_t)(10*9*8),arr.size());
1377 arr.alloc(10,11,12);
1378 CHECK_EQUAL((
size_t)(10*11*12),arr.capacity());
1383 for (
int i=0; i<10; ++i)
1384 for (
int j=0; j<11; ++j)
1387 for (
int k=0; k<12; ++k)
1388 CHECK_EQUAL(0,p[k]);
1394 TEST_FIXTURE(LongInt3DFixtureBC,TestSizeAlgorithm)
1397 arr.alloc(10,11,12);
1400 for (
int i=0; i<10; ++i)
1401 for (
int j=0; j<11; ++j)
1403 CHECK_EQUAL(0,count_if(arr.begin(i,j),arr.end(i,j),
1404 bind1st(not_equal_to<long>(),0)));
1408 TEST_FIXTURE(LongInt3DFixtureCTypeBC,TestSizeCType)
1410 CHECK_EQUAL((
size_t)(10*9*8),arr.size());
1414 arr.alloc(10,11,12);
1415 CHECK_EQUAL((
size_t)(10*11*12),arr.capacity());
1420 for (
int i=0; i<10; ++i)
1421 for (
int j=0; j<11; ++j)
1424 for (
int k=0; k<12; ++k)
1425 CHECK_EQUAL(0,p[k]);
1430 TEST_FIXTURE(LongInt6DFixtureExplicitReserve,TestExplicitReserve)
1433 for (
int i=0; i<10; ++i)
1434 for (
int j=0; j<9; ++j)
1435 for (
int k=0; k<8; ++k)
1436 for (
int l=0; l<7; ++l)
1437 for (
int m=0; m<6; ++m)
1438 for (
int n=0; n<5; ++n)
1439 CHECK_EQUAL(0,arr[i][j][k][l][m][n]);
1446 TEST_FIXTURE(TestAllocFixture,TestVariantAlloc)
1448 CHECK_EQUAL(0,mytest());
1453 TEST_FIXTURE(LongInt3DFixture,TestData)
1455 CHECK_EQUAL(&arr[0][0][0],arr.data());
1456 arr[0][0][0] = 1234;
1457 CHECK_EQUAL(1234,*arr.data());
1459 CHECK_EQUAL(&arr[0][0][0],carr->data());
1461 TEST_FIXTURE(LongInt3DFixtureCType,TestDataCType)
1463 CHECK_EQUAL(&arr[0][0][0],arr.data());
1464 arr[0][0][0] = 1234;
1465 CHECK_EQUAL(1234,*arr.data());
1467 CHECK_EQUAL(&arr[0][0][0],carr->data());
1470 TEST_FIXTURE(LongInt6DFixture,TestCopyOperator)
1473 CHECK( arr.size() != arr2.size() );
1475 CHECK_EQUAL(0,arr2[0][1][2][3][4][5]);
1477 CHECK( arr.size() == arr2.size() );
1479 CHECK( &arr[0][1][2][3][4][5] != &arr2[0][1][2][3][4][5] );
1480 for (
int i=0; i<10; ++i)
1481 for (
int j=0; j<9; ++j)
1482 for (
int k=0; k<8; ++k)
1483 for (
int l=0; l<7; ++l)
1484 for (
int m=0; m<6; ++m)
1485 for (
int n=0; n<5; ++n)
1487 long z = i*100000+j*10000+k*1000+l*100+m*10+n;
1488 CHECK_EQUAL(z,arr2[i][j][k][l][m][n]);
1494 CHECK_EQUAL(712344,arr2[7][1][2][3][4][4]);
1498 CHECK( arr.size() == arr3.
size() );
1500 CHECK( &arr[7][1][2][3][4][4] != &arr3[7][1][2][3][4][4] );
1501 CHECK_EQUAL(arr[7][1][2][3][4][4],arr3[7][1][2][3][4][4]);
1506 CHECK(arr2.empty());
1509 CHECK(arr4.empty());
1512 TEST_FIXTURE(LongInt6DFixtureBC,TestCopyOperatorBC)
1515 CHECK( arr.size() != arr2.size() );
1517 CHECK_EQUAL(0,arr2[0][1][2][3][4][5]);
1519 CHECK( arr.size() == arr2.size() );
1520 for (
int i=0; i<10; ++i)
1521 for (
int j=0; j<9; ++j)
1522 for (
int k=0; k<8; ++k)
1523 for (
int l=0; l<7; ++l)
1524 for (
int m=0; m<6; ++m)
1525 for (
int n=0; n<5; ++n)
1527 long z = i*100000+j*10000+k*1000+l*100+m*10+n;
1528 CHECK_EQUAL(z,arr2[i][j][k][l][m][n]);
1531 CHECK_THROW(arr2[m1][1][2][3][4][0],out_of_range);
1532 CHECK_THROW(arr2[10][1][2][3][4][0],out_of_range);
1533 CHECK_THROW(arr2[7][m1][3][2][4][1],out_of_range);
1534 CHECK_THROW(arr2[7][9][3][2][4][1],out_of_range);
1535 CHECK_THROW(arr2[7][3][m1][1][0][2],out_of_range);
1536 CHECK_THROW(arr2[7][3][8][1][0][2],out_of_range);
1537 CHECK_THROW(arr2[7][3][1][m1][2][0],out_of_range);
1538 CHECK_THROW(arr2[7][3][1][7][2][0],out_of_range);
1539 CHECK_THROW(arr2[7][4][1][2][m1][3],out_of_range);
1540 CHECK_THROW(arr2[7][4][1][2][6][3],out_of_range);
1541 CHECK_THROW(arr2[7][4][1][2][3][m1],out_of_range);
1542 CHECK_THROW(arr2[7][4][1][2][3][5],out_of_range);
1547 CHECK_EQUAL(712344,arr2[7][1][2][3][4][4]);
1551 CHECK(arr2.empty());
1554 CHECK(arr4.empty());
1557 TEST_FIXTURE(LongInt6DFixtureCType,TestCopyOperatorCType)
1560 CHECK( arr.size() != arr2.size() );
1562 CHECK_EQUAL(0,arr2[0][1][2][3][4][5]);
1564 CHECK( arr.size() == arr2.size() );
1565 for (
int i=0; i<10; ++i)
1566 for (
int j=0; j<9; ++j)
1567 for (
int k=0; k<8; ++k)
1568 for (
int l=0; l<7; ++l)
1569 for (
int m=0; m<6; ++m)
1570 for (
int n=0; n<5; ++n)
1572 long z = i*100000+j*10000+k*1000+l*100+m*10+n;
1573 CHECK_EQUAL(z,arr2[i][j][k][l][m][n]);
1579 CHECK_EQUAL(712344,arr2[7][1][2][3][4][4]);
1583 CHECK(arr2.empty());
1586 CHECK(arr4.empty());
1589 TEST_FIXTURE(LongInt6DFixtureCTypeBC,TestCopyOperatorCTypeBC)
1592 CHECK( arr.size() != arr2.size() );
1594 CHECK_EQUAL(0,arr2[0][1][2][3][4][5]);
1596 CHECK( arr.size() == arr2.size() );
1597 for (
int i=0; i<10; ++i)
1598 for (
int j=0; j<9; ++j)
1599 for (
int k=0; k<8; ++k)
1600 for (
int l=0; l<7; ++l)
1601 for (
int m=0; m<6; ++m)
1602 for (
int n=0; n<5; ++n)
1604 long z = i*100000+j*10000+k*1000+l*100+m*10+n;
1605 CHECK_EQUAL(z,arr2[i][j][k][l][m][n]);
1608 CHECK_THROW(arr2[m1][1][2][3][4][0],out_of_range);
1609 CHECK_THROW(arr2[10][1][2][3][4][0],out_of_range);
1610 CHECK_THROW(arr2[7][m1][3][2][4][1],out_of_range);
1611 CHECK_THROW(arr2[7][9][3][2][4][1],out_of_range);
1612 CHECK_THROW(arr2[7][3][m1][1][0][2],out_of_range);
1613 CHECK_THROW(arr2[7][3][8][1][0][2],out_of_range);
1614 CHECK_THROW(arr2[7][3][1][m1][2][0],out_of_range);
1615 CHECK_THROW(arr2[7][3][1][7][2][0],out_of_range);
1616 CHECK_THROW(arr2[7][4][1][2][m1][3],out_of_range);
1617 CHECK_THROW(arr2[7][4][1][2][6][3],out_of_range);
1618 CHECK_THROW(arr2[7][4][1][2][3][m1],out_of_range);
1619 CHECK_THROW(arr2[7][4][1][2][3][5],out_of_range);
1624 CHECK_EQUAL(712344,arr2[7][1][2][3][4][4]);
1628 CHECK(arr2.empty());
1631 CHECK(arr4.empty());
1635 TEST_FIXTURE(LongInt3DCLayoutFixture,TestCLayout)
1637 CHECK_EQUAL(0L,mytest((
long(*)[10][10])arr.data()));
1641 TEST_FIXTURE(LongInt3DCloneFixture,TestCloning)
1645 CHECK_THROW(dolly[10][0][0],out_of_range);
1646 for (
int i=0; i<10; ++i)
1648 CHECK_THROW(dolly[i][i+1][0],out_of_range);
1649 for (
int j=0; j<i+1; ++j)
1650 CHECK_THROW(dolly[i][j][j+1],out_of_range);
1655 CHECK(dolly2.empty());
1660 CHECK_EQUAL(243UL,arr3.
size());
1664 TEST_FIXTURE(LongInt3DCloneFixtureCType,TestCloningCType)
1668 CHECK_THROW(dolly[10][0][0],out_of_range);
1669 for (
int i=0; i<10; ++i)
1671 CHECK_THROW(dolly[i][i+1][0],out_of_range);
1672 for (
int j=0; j<i+1; ++j)
1673 CHECK_THROW(dolly[i][j][j+1],out_of_range);
1678 CHECK(dolly2.empty());
1683 CHECK_EQUAL(243UL,arr3.
size());
1686 TEST_FIXTURE(LongInt2DFixture,Test2DBeginEnd)
1688 CHECK( arr.begin(2) == arr.ptr(2,0) );
1689 CHECK( arr.end(2) == arr.ptr(2,9) );
1690 CHECK_EQUAL(20L,arr.front(2));
1691 CHECK_EQUAL(28L,arr.back(2));
1693 CHECK( carr->begin(2) == carr->ptr(2,0) );
1694 CHECK( carr->end(2) == carr->ptr(2,9) );
1695 CHECK_EQUAL(20L,carr->front(2));
1696 CHECK_EQUAL(28L,carr->back(2));
1698 TEST_FIXTURE(LongInt3DFixture,Test3DBeginEnd)
1700 CHECK( arr.begin(2,4) == arr.ptr(2,4,0) );
1701 CHECK( arr.end(2,4) == arr.ptr(2,4,8) );
1702 CHECK_EQUAL(240L,arr.front(2,4));
1703 CHECK_EQUAL(247L,arr.back(2,4));
1705 CHECK( carr->begin(2,4) == carr->ptr(2,4,0) );
1706 CHECK( carr->end(2,4) == carr->ptr(2,4,8) );
1707 CHECK_EQUAL(240L,carr->front(2,4));
1708 CHECK_EQUAL(247L,carr->back(2,4));
1710 TEST_FIXTURE(LongInt4DFixture,Test4DBeginEnd)
1712 CHECK( arr.begin(2,4,7) == arr.ptr(2,4,7,0) );
1713 CHECK( arr.end(2,4,7) == arr.ptr(2,4,7,7) );
1714 CHECK_EQUAL(2470L,arr.front(2,4,7));
1715 CHECK_EQUAL(2476L,arr.back(2,4,7));
1717 CHECK( carr->begin(2,4,7) == carr->ptr(2,4,7,0) );
1718 CHECK( carr->end(2,4,7) == carr->ptr(2,4,7,7) );
1719 CHECK_EQUAL(2470L,carr->front(2,4,7));
1720 CHECK_EQUAL(2476L,carr->back(2,4,7));
1722 TEST_FIXTURE(LongInt5DFixture,Test5DBeginEnd)
1724 CHECK( arr.begin(2,4,7,5) == arr.ptr(2,4,7,5,0) );
1725 CHECK( arr.end(2,4,7,5) == arr.ptr(2,4,7,5,6) );
1726 CHECK_EQUAL(24750L,arr.front(2,4,7,5));
1727 CHECK_EQUAL(24755L,arr.back(2,4,7,5));
1729 CHECK( carr->begin(2,4,7,5) == carr->ptr(2,4,7,5,0) );
1730 CHECK( carr->end(2,4,7,5) == carr->ptr(2,4,7,5,6) );
1731 CHECK_EQUAL(24750L,carr->front(2,4,7,5));
1732 CHECK_EQUAL(24755L,carr->back(2,4,7,5));
1734 TEST_FIXTURE(LongInt6DFixture,Test6DBeginEnd)
1736 CHECK( arr.begin(2,4,7,5,1) == arr.ptr(2,4,7,5,1,0) );
1737 CHECK( arr.end(2,4,7,5,1) == arr.ptr(2,4,7,5,1,5) );
1738 CHECK_EQUAL(247510L,arr.front(2,4,7,5,1));
1739 CHECK_EQUAL(247514L,arr.back(2,4,7,5,1));
1741 CHECK( carr->begin(2,4,7,5,1) == carr->ptr(2,4,7,5,1,0) );
1742 CHECK( carr->end(2,4,7,5,1) == carr->ptr(2,4,7,5,1,5) );
1743 CHECK_EQUAL(247510L,carr->front(2,4,7,5,1));
1744 CHECK_EQUAL(247514L,carr->back(2,4,7,5,1));
1747 TEST_FIXTURE(LongInt2DFixtureCTypeBC,Test2DBeginEndCTypeBC)
1749 CHECK( arr.begin(2) == arr.ptr(2,0) );
1750 CHECK( arr.end(2) == arr.ptr(2,9) );
1751 CHECK_EQUAL(20L,arr.front(2));
1752 CHECK_EQUAL(28L,arr.back(2));
1754 CHECK( carr->begin(2) == carr->ptr(2,0) );
1755 CHECK( carr->end(2) == carr->ptr(2,9) );
1756 CHECK_EQUAL(20L,carr->front(2));
1757 CHECK_EQUAL(28L,carr->back(2));
1759 TEST_FIXTURE(LongInt3DFixtureCTypeBC,Test3DBeginEndCTypeBC)
1761 CHECK( arr.begin(2,4) == arr.ptr(2,4,0) );
1762 CHECK( arr.end(2,4) == arr.ptr(2,4,8) );
1763 CHECK_EQUAL(240L,arr.front(2,4));
1764 CHECK_EQUAL(247L,arr.back(2,4));
1766 CHECK( carr->begin(2,4) == carr->ptr(2,4,0) );
1767 CHECK( carr->end(2,4) == carr->ptr(2,4,8) );
1768 CHECK_EQUAL(240L,carr->front(2,4));
1769 CHECK_EQUAL(247L,carr->back(2,4));
1771 TEST_FIXTURE(LongInt4DFixtureCTypeBC,Test4DBeginEndCTypeBC)
1773 CHECK( arr.begin(2,4,7) == arr.ptr(2,4,7,0) );
1774 CHECK( arr.end(2,4,7) == arr.ptr(2,4,7,7) );
1775 CHECK_EQUAL(2470L,arr.front(2,4,7));
1776 CHECK_EQUAL(2476L,arr.back(2,4,7));
1778 CHECK( carr->begin(2,4,7) == carr->ptr(2,4,7,0) );
1779 CHECK( carr->end(2,4,7) == carr->ptr(2,4,7,7) );
1780 CHECK_EQUAL(2470L,carr->front(2,4,7));
1781 CHECK_EQUAL(2476L,carr->back(2,4,7));
1783 TEST_FIXTURE(LongInt5DFixtureCTypeBC,Test5DBeginEndCTypeBC)
1785 CHECK( arr.begin(2,4,7,5) == arr.ptr(2,4,7,5,0) );
1786 CHECK( arr.end(2,4,7,5) == arr.ptr(2,4,7,5,6) );
1787 CHECK_EQUAL(24750L,arr.front(2,4,7,5));
1788 CHECK_EQUAL(24755L,arr.back(2,4,7,5));
1790 CHECK( carr->begin(2,4,7,5) == carr->ptr(2,4,7,5,0) );
1791 CHECK( carr->end(2,4,7,5) == carr->ptr(2,4,7,5,6) );
1792 CHECK_EQUAL(24750L,carr->front(2,4,7,5));
1793 CHECK_EQUAL(24755L,carr->back(2,4,7,5));
1795 TEST_FIXTURE(LongInt6DFixtureCTypeBC,Test6DBeginEndCTypeBC)
1797 CHECK( arr.begin(2,4,7,5,1) == arr.ptr(2,4,7,5,1,0) );
1798 CHECK( arr.end(2,4,7,5,1) == arr.ptr(2,4,7,5,1,5) );
1799 CHECK_EQUAL(247510L,arr.front(2,4,7,5,1));
1800 CHECK_EQUAL(247514L,arr.back(2,4,7,5,1));
1802 CHECK( carr->begin(2,4,7,5,1) == carr->ptr(2,4,7,5,1,0) );
1803 CHECK( carr->end(2,4,7,5,1) == carr->ptr(2,4,7,5,1,5) );
1804 CHECK_EQUAL(247510L,carr->front(2,4,7,5,1));
1805 CHECK_EQUAL(247514L,carr->back(2,4,7,5,1));
1809 TEST_FIXTURE(LongInt3DFixture,Test3DVarLengthArgument)
1812 sprintf( buf,
"%ld", arr[2][3][4] );
1814 sscanf( buf,
"%ld", &res );
1815 CHECK_EQUAL(234L,res);
1818 TEST_FIXTURE(LongInt3DFixtureCType,Test3DVarLengthArgumentCType)
1821 sprintf( buf,
"%ld", arr[2][3][4] );
1823 sscanf( buf,
"%ld", &res );
1824 CHECK_EQUAL(234L,res);
1827 TEST_FIXTURE(LongInt2DEmptyDim,Test2DEmptyDimIterator)
1835 TEST_FIXTURE(LongInt3DEmptyDim,Test3DEmptyDimIterator)
1843 TEST_FIXTURE(LongInt4DEmptyDim,Test4DEmptyDimIterator)
1851 TEST_FIXTURE(LongInt5DEmptyDim,Test5DEmptyDimIterator)
1859 TEST_FIXTURE(LongInt6DEmptyDim,Test6DEmptyDimIterator)
1867 TEST_FIXTURE(LongInt2DEmptyDimCType,Test2DEmptyDimIteratorCType)
1875 TEST_FIXTURE(LongInt3DEmptyDimCType,Test3DEmptyDimIteratorCType)
1883 TEST_FIXTURE(LongInt4DEmptyDimCType,Test4DEmptyDimIteratorCType)
1891 TEST_FIXTURE(LongInt5DEmptyDimCType,Test5DEmptyDimIteratorCType)
1899 TEST_FIXTURE(LongInt6DEmptyDimCType,Test6DEmptyDimIteratorCType)
pntr - interface class to replace normal pointers
const_pntr - same as pntr, except that it replaces const pointers rather than normal pointers ...
const multi_geom< d, ALLOC > & clone() const
void reserve(size_type i1)