# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl 1.t' sub printM($$$) { my ($ref, $r, $file) = @_; open ( FH, "> ${file}.1" ); map { print FH "$_\n"; } @{$ref}; open ( FH, "> ${file}.2" ); map { print FH "$_\n"; } @{$r}; } sub my_eq_array($$) { my( $x, $y ) = @_; my $c1 = scalar @{$x}; my $c2 = scalar @{$y}; return 0 if ( $c1 != $c2 ); for ( my $i=0; $i < $c1; $i++ ) { return 0 if( $x->[$i] ne $y->[$i] ); } return 1; } ######################### ######################### use Test::More tests => 11; BEGIN { use_ok('Script::Toolbox') }; ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. ############################################################################## unlink "/tmp/06_Table.log",<*.1>,<*.2>; $F = Script::Toolbox->new({logdir=>{mod=>'=s',mand=>1,default=>'/tmp'}}); ############################################################################## ############################### TEST 2 ##################################### $rep1 = { 'title' => 'Test2', 'head' => ['Feld1', 'Feld2', 'Feld3'], 'data' => [ [ 'aaa', 'bb ', 'cc ' ], [ 11111, 2222222, 3 ] ] }; $r = $F->Table( $rep1 ); $ref = ["== Test2 ==", "Feld1 Feld2 Feld3", "----- ------- -----", "aaa bb cc ", "11111 2222222 3 ", ]; printM($ref, $r, 'AA'); ok(my_eq_array($ref, $r)); ############################### TEST 3 ##################################### $rep2 = { 'title' => 'Test3', 'head' => ['unused1', 'unused2', 'unused3'], 'data' => [ { 'F1' => 'aaaa', 'F2' => 'bbb ', 'F3' => 'c' }, { 'F1' => 'dddd', 'F2' => 'eee ', 'F3' => 'f' } ] }; $r = $F->Table( $rep2 ); $ref = ["== Test3 ==", "F1 F2 F3", "---- --- --", "aaaa bbb c ", "dddd eee f ", ]; printM($ref, $r, 'BB'); ok(my_eq_array($ref, $r)); ############################### TEST 4 ##################################### $rep4 = { 'title' => 'Test4', 'head' => ['Feld1', 'Feld2', 'Feld3'], 'data' => [ [ '11:11:11', -33.456, 'cc ' ], [ '12:23:00', 2222222, 3 ], [ '11:11', 222, 3333333333333333 ] ] }; $r = $F->Table( $rep4 ); $ref = ["== Test4 ==", "Feld1 Feld2 Feld3 ", "-------- ----------- --------------------", "11:11:11 -33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3.33333333333333e+15", ]; $ref2= ["== Test4 ==", "Feld1 Feld2 Feld3 ", "-------- ----------- ----------------", "11:11:11 -33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3333333333333333", ]; printM($ref, $r, 'DD'); ok(my_eq_array($ref, $r) || my_eq_array($ref2, $r)); ############################### TEST 5/6 ##################################### $rep5 = { 'title' => 'Test5', 'head' => ['Feld1', 'Feld2', 'Feld3'], 'data' => [], }; $r = $F->Table( $rep5 ); $ref = []; printM($ref, $r, 'EE'); #ok(eq_array($ref, $r)); ok( -z 'EE.1' && -z 'EE.2', 'empty array is ok' ); ok( system("grep 'WARNING: no data for Table()' /tmp/6_Table.log >/dev/null 2>&1") / 256 ); ############################### TEST 7 ##################################### $rep6 = { 'data' => [ [ '11:11:11', 33.456, 'cc ' ], [ '12:23:00', 2222222, 3 ], [ '11:11', 222, 3333333333333333 ] ] }; $r = $F->Table( $rep6 ); $ref = ["== Title ==", "Col-0 Col-1 Col-2 ", "-------- ----------- --------------------", "11:11:11 33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3.33333333333333e+15" ]; $ref2= ["== Title ==", "Col-0 Col-1 Col-2 ", "-------- ----------- ----------------", "11:11:11 33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3333333333333333", ]; printM($ref, $r, 'FF'); ok(my_eq_array($ref, $r) || my_eq_array($ref2, $r)); ############################### TEST 8 ##################################### $rep7 = [ 'This is the title', [ '--H1--', '--H2--','--H3--'], [ '11:11:11', 33.456, 'cc ' ], [ '12:23:00', 2222222, 3 ], [ '11:11', 222, 3333333333333333 ] ]; $r = $F->Table( $rep7 ); $ref = ["== This is the title ==", "--H1-- --H2-- --H3-- ", "-------- ----------- --------------------", "11:11:11 33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3.33333333333333e+15" ]; $ref2= ["== This is the title ==", "--H1-- --H2-- --H3-- ", "-------- ----------- ----------------", "11:11:11 33.456 cc ", "12:23:00 2222222.000 3 ", "11:11 222.000 3333333333333333", ]; printM($ref, $r, 'GG'); ok(my_eq_array($ref, $r) || my_eq_array($ref2, $r)); ############################### TEST 9 ##################################### $rep8 = [ "1;2;3","44;55;66","777;888;999" ]; $r = $F->Table( $rep8 ); $ref = [ "== Title ==", "Col-0 Col-1 Col-2", "----- ----- -----", " 1 2 3", " 44 55 66", " 777 888 999" ]; printM($ref, $r, 'HH'); ok(my_eq_array($ref, $r)); ############################### TEST 10 ##################################### $rep9 = [ "1,2,3","44,55,66","777,888,999" ]; $r = $F->Table( $rep9, ',' ); $ref = [ "== Title ==", "Col-0 Col-1 Col-2", "----- ----- -----", " 1 2 3", " 44 55 66", " 777 888 999" ]; printM($ref, $r, 'II'); ok(my_eq_array($ref, $r)); ############################### TEST 11 ##################################### $rep10 = [ "1;2;3","44;55;66","7.77;8.88;9.99" ]; $r = $F->Table( $rep10 ); $ref = [ "== Title ==", " Col-0 Col-1 Col-2", "-------- -------- --------", " 1.00 2.00 3.00", " 44.00 55.00 66.00", " 7.77 8.88 9.99" ]; printM($ref, $r, 'JJ'); ok(my_eq_array($ref, $r)); unlink "/tmp/06_Table.log",<*.1>,<*.2>;