home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / lib / textwrap.t < prev    next >
Text File  |  1999-07-20  |  4KB  |  130 lines

  1. #!./perl -w
  2.  
  3. BEGIN {
  4.     chdir 't' if -d 't';
  5.     unshift @INC, '../lib';
  6. }
  7. use Text::Wrap qw(&wrap);
  8.  
  9. @tests = (split(/\nEND\n/s, <<DONE));
  10. TEST1
  11. This 
  12. is
  13. a
  14. test
  15. END
  16.    This 
  17.  is
  18.  a
  19.  test
  20. END
  21. TEST2
  22. This is a test of a very long line.  It should be broken up and put onto multiple lines.
  23. This is a test of a very long line.  It should be broken up and put onto multiple lines.
  24.  
  25. This is a test of a very long line.  It should be broken up and put onto multiple lines.
  26. END
  27.    This is a test of a very long line.    It should be broken up and put onto
  28.  multiple lines.
  29.  This is a test of a very long line.  It should be broken up and put onto
  30.  multiple lines.
  31.  
  32.  This is a test of a very long line.  It should be broken up and put onto
  33.  multiple lines.
  34. END
  35. TEST3
  36. This is a test of a very long line.  It should be broken up and put onto multiple lines.
  37. END
  38.    This is a test of a very long line.    It should be broken up and put onto
  39.  multiple lines.
  40. END
  41. TEST4
  42. This is a test of a very long line.  It should be broken up and put onto multiple lines.
  43.  
  44. END
  45.    This is a test of a very long line.    It should be broken up and put onto
  46.  multiple lines.
  47.  
  48. END
  49. TEST5
  50. This is a test of a very long line. It should be broken up and put onto multiple This is a test of a very long line. It should be broken up and put
  51. END
  52.    This is a test of a very long line. It should be broken up and put onto
  53.  multiple This is a test of a very long line. It should be broken up and
  54.  put
  55. END
  56. TEST6
  57. 11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888 999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
  58. END
  59.    11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888
  60.  999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff
  61.  gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn
  62.  ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
  63. END
  64. TEST7
  65. c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6 c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0 c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0 c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
  66. END
  67.    c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6
  68.  c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0
  69.  c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0
  70.  c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
  71. END
  72. TEST8
  73. A test of a very very long word.
  74. a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
  75. END
  76.    A test of a very very long word.
  77.  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
  78.  4567
  79. END
  80. TEST9
  81. A test of a very very long word.  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
  82. END
  83.    A test of a very very long word. 
  84.  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
  85.  4567
  86. END
  87. DONE
  88.  
  89.  
  90. $| = 1;
  91.  
  92. print "1..", @tests/2, "\n";
  93.  
  94. use Text::Wrap;
  95.  
  96. $rerun = $ENV{'PERL_DL_NONLAZY'} ? 0 : 1;
  97.  
  98. $tn = 1;
  99. while (@tests) {
  100.     my $in = shift(@tests);
  101.     my $out = shift(@tests);
  102.  
  103.     $in =~ s/^TEST(\d+)?\n//;
  104.  
  105.     my $back = wrap('   ', ' ', $in);
  106.  
  107.     if ($back eq $out) {
  108.         print "ok $tn\n";
  109.     } elsif ($rerun) {
  110.         my $oi = $in;
  111.         foreach ($in, $back, $out) {
  112.             s/\t/^I\t/gs;
  113.             s/\n/\$\n/gs;
  114.         }
  115.         print "------------ input ------------\n";
  116.         print $in;
  117.         print "\n------------ output -----------\n";
  118.         print $back;
  119.         print "\n------------ expected ---------\n";
  120.         print $out;
  121.         print "\n-------------------------------\n";
  122.         $Text::Wrap::debug = 1;
  123.         wrap('   ', ' ', $oi);
  124.         exit(1);
  125.     } else {
  126.         print "not ok $tn\n";
  127.     }
  128.     $tn++;
  129. }
  130.