test 1 row major order a big red rose a big red tulip a big pink rose a big pink tulip a big yellow rose a big yellow tulip another big red rose another big red tulip another big pink rose another big pink tulip another big yellow rose another big yellow tulip test 2 column major order a big red rose another big red rose a big pink rose another big pink rose a big yellow rose another big yellow rose a big red tulip another big red tulip a big pink tulip another big pink tulip a big yellow tulip another big yellow tulip test 3 get_order and set_order back to row major get_order() returned 1; should return 1 get_order() returned 0; should return 0 a big red rose a big red tulip a big pink rose a big pink tulip a big yellow rose a big yellow tulip another big red rose another big red tulip another big pink rose another big pink tulip another big yellow rose another big yellow tulip test 4 warn about empty set among list of sets (Warning message may not be captured in the test results file) test 5 do not warn empty set among list of sets test 6 warn about no sets at all (Warning message may not be captured in the test results file) test 7 do not warn about no sets at all test 8 -- OK to have undef in a set, it print as the null string before_undef after_undef test 9 Try to go past last -- singleton --next() should fail 1 row, next() called twice Error: Set::CartesianProduct next() invalid: iterator after last item at testcart.pl line 206 test 10 Try to go past last -- next() call should fail 2 rows next() called thrice Error: Set::CartesianProduct next() invalid: iterator after last item at testcart.pl line 215 test 11 Should croak -- no args to new() Error: Set::CartesianProduct new() needs an argument for lists of sets at testcart.pl line 220 test 12 Should croak -- wrong arg to new() Error: Set::CartesianProduct new() needs first argument to be array ref at testcart.pl line 223 test 13 Should croak -- wrong contents of arg to new() Error: Set::CartesianProduct new() needs set[1] to be array ref at testcart.pl line 226 test 14 Should croak -- too many args to next() Error: Set::CartesianProduct next() does not take any arguments at testcart.pl line 231 test 15 Should croak -- too many args to get_order() Error: Set::CartesianProduct get_order() takes no arguments at testcart.pl line 237 test 16 Should croak -- not enough args to set_order() Error: Set::CartesianProduct set_order() needs 1 argument at testcart.pl line 243 test 17 Should croak -- invalid arg to set_order() Error: Set::CartesianProduct set_order() invalid argument: 17 at testcart.pl line 249 test 18 Should croak -- arg not numeric to set_order() (Compiler message may not be captured in the test results file) test 19 Should croak -- too many args to set_order() Error: Set::CartesianProduct set_order() needs 1 argument at testcart.pl line 266 test 20 Should croak -- too many args to is_row_major() Error: Set::CartesianProduct is_row_major() takes no arguments at testcart.pl line 273 test 21 Should croak -- set_order() called when not at start Error: Set::CartesianProduct set_order() can only be called at start at testcart.pl line 280