TextDiffTests.st
changeset 10013 09f8a872932e
child 12123 4bde08cebd48
child 13814 859a43bbea19
equal deleted inserted replaced
10012:b9d3ade2b5bc 10013:09f8a872932e
       
     1 "{ Package: 'stx:libtool' }"
       
     2 
       
     3 TestCase subclass:#TextDiffTests
       
     4 	instanceVariableNames:''
       
     5 	classVariableNames:''
       
     6 	poolDictionaries:''
       
     7 	category:'Collections-Sequenceable-Diff'
       
     8 !
       
     9 
       
    10 TextDiffTests comment:'asdfasfsafsafsa
       
    11 '
       
    12 !
       
    13 
       
    14 !TextDiffTests class methodsFor:'documentation'!
       
    15 
       
    16 documentation
       
    17 "
       
    18 
       
    19 
       
    20 "
       
    21 ! !
       
    22 
       
    23 !TextDiffTests methodsFor:'default'!
       
    24 
       
    25 testForward
       
    26     |diff change first second|
       
    27 
       
    28     first := #( 'aaa' 'lll' ).
       
    29     second := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ).
       
    30     diff := Diff new.
       
    31     diff a:first b:second.
       
    32     change := diff diff:false.
       
    33     self deny:(change = nil).
       
    34     self assert:(change deleted = 0).
       
    35     self assert:(change inserted = 2).
       
    36     self assert:(change line0 = 1).
       
    37     self assert:(change line1 = 1).
       
    38     change := change nextLink.
       
    39     self deny:(change = nil).
       
    40     self assert:(change deleted = 0).
       
    41     self assert:(change inserted = 7).
       
    42     self assert:(change line0 = 2).
       
    43     self assert:(change line1 = 4).
       
    44     self assert:(change nextLink = nil).
       
    45 
       
    46     "Modified: / 12-02-2010 / 14:23:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    47 !
       
    48 
       
    49 testForward1
       
    50     "comment stating purpose of this message"
       
    51     
       
    52     |d a b result|
       
    53 
       
    54     a := ''.
       
    55     b := ''.
       
    56     d := Diff new.
       
    57     d a:a b:b.
       
    58     result := d diffUsingScript:(Diff::ForwardScript new).
       
    59     self assert:(result = nil).
       
    60 
       
    61     "Modified: / 12-02-2010 / 13:57:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    62 !
       
    63 
       
    64 testForward10
       
    65     "comment stating purpose of message"
       
    66     
       
    67     |d a b result|
       
    68 
       
    69     a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' 'ccccc' 'ccccc' ).
       
    70     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
    71     d := Diff new.
       
    72     d a:a b:b.
       
    73     result := d diff:false.
       
    74     self deny:(result = nil).
       
    75     self assert:(result deleted = 1).
       
    76     self assert:(result inserted = 0).
       
    77     self assert:(result line0 = 0).
       
    78     self assert:(result line1 = 0).
       
    79     result := result nextLink.
       
    80     self deny:(result = nil).
       
    81     self assert:(result deleted = 1).
       
    82     self assert:(result inserted = 4).
       
    83     self assert:(result line0 = 2).
       
    84     self assert:(result line1 = 1).
       
    85     result := result nextLink.
       
    86     self deny:(result = nil).
       
    87     self assert:(result deleted = 0).
       
    88     self assert:(result inserted = 1).
       
    89     self assert:(result line0 = 4).
       
    90     self assert:(result line1 = 6).
       
    91     result := result nextLink.
       
    92     self deny:(result = nil).
       
    93     self assert:(result deleted = 0).
       
    94     self assert:(result inserted = 5).
       
    95     self assert:(result line0 = 6).
       
    96     self assert:(result line1 = 9).
       
    97     result := result nextLink.
       
    98     self deny:(result = nil).
       
    99     self assert:(result deleted = 2).
       
   100     self assert:(result inserted = 0).
       
   101     self assert:(result line0 = 8).
       
   102     self assert:(result line1 = 16).
       
   103     self assert:(result nextLink = nil).
       
   104 !
       
   105 
       
   106 testForward2
       
   107     "comment stating purpose of message"
       
   108     
       
   109     |d a b result|
       
   110 
       
   111     a := ''.
       
   112     b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ).
       
   113     d := Diff new.
       
   114     d a:a b:b.
       
   115     result := d diff:false.
       
   116     self deny:(result = nil).
       
   117     self assert:(result deleted = 0).
       
   118     self assert:(result inserted = 11).
       
   119     self assert:(result line0 = 0).
       
   120     self assert:(result line1 = 0).
       
   121     self assert:(result nextLink = nil).
       
   122 !
       
   123 
       
   124 testForward3
       
   125     "comment stating purpose of message"
       
   126     
       
   127     |d a b result|
       
   128 
       
   129     a := #( 'aaa' 'lll' ).
       
   130     b := ''.
       
   131     d := Diff new.
       
   132     d a:a b:b.
       
   133     result := d diff:false.
       
   134     self deny:(result = nil).
       
   135     self assert:(result deleted = 2).
       
   136     self assert:(result inserted = 0).
       
   137     self assert:(result line0 = 0).
       
   138     self assert:(result line1 = 0).
       
   139     self assert:(result nextLink = nil).
       
   140 !
       
   141 
       
   142 testForward4
       
   143     "comment stating purpose of message"
       
   144     
       
   145     |d a b result|
       
   146 
       
   147     a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   148     b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ).
       
   149     d := Diff new.
       
   150     d a:a b:b.
       
   151     result := d diff:false.
       
   152     self deny:(result = nil).
       
   153     self assert:(result deleted = 0).
       
   154     self assert:(result inserted = 5).
       
   155     self assert:(result line0 = 1).
       
   156     self assert:(result line1 = 1).
       
   157     result := result nextLink.
       
   158     self deny:(result = nil).
       
   159     self assert:(result deleted = 0).
       
   160     self assert:(result inserted = 6).
       
   161     self assert:(result line0 = 5).
       
   162     self assert:(result line1 = 10).
       
   163     self assert:(result nextLink = nil).
       
   164 !
       
   165 
       
   166 testForward5
       
   167     "comment stating purpose of message"
       
   168     
       
   169     |d a b result|
       
   170 
       
   171     a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   172     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   173     d := Diff new.
       
   174     d a:a b:b.
       
   175     result := d diff:false.
       
   176     self deny:(result = nil).
       
   177     self assert:(result deleted = 0).
       
   178     self assert:(result inserted = 5).
       
   179     self assert:(result line0 = 2).
       
   180     self assert:(result line1 = 2).
       
   181     result := result nextLink.
       
   182     self deny:(result = nil).
       
   183     self assert:(result deleted = 0).
       
   184     self assert:(result inserted = 5).
       
   185     self assert:(result line0 = 4).
       
   186     self assert:(result line1 = 9).
       
   187     self assert:(result nextLink = nil).
       
   188 !
       
   189 
       
   190 testForward6
       
   191     "comment stating purpose of message"
       
   192     
       
   193     |d a b result|
       
   194 
       
   195     a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   196     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   197     d := Diff new.
       
   198     d a:a b:b.
       
   199     result := d diff:false.
       
   200     self deny:(result = nil).
       
   201     self assert:(result deleted = 0).
       
   202     self assert:(result inserted = 3).
       
   203     self assert:(result line0 = 2).
       
   204     self assert:(result line1 = 2).
       
   205     result := result nextLink.
       
   206     self deny:(result = nil).
       
   207     self assert:(result deleted = 1).
       
   208     self assert:(result inserted = 1).
       
   209     self assert:(result line0 = 3).
       
   210     self assert:(result line1 = 6).
       
   211     result := result nextLink.
       
   212     self deny:(result = nil).
       
   213     self assert:(result deleted = 0).
       
   214     self assert:(result inserted = 5).
       
   215     self assert:(result line0 = 6).
       
   216     self assert:(result line1 = 9).
       
   217     self assert:(result nextLink = nil).
       
   218 !
       
   219 
       
   220 testForward7
       
   221     "comment stating purpose of message"
       
   222     
       
   223     |d a b result|
       
   224 
       
   225     a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   226     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   227     d := Diff new.
       
   228     d a:a b:b.
       
   229     result := d diff:false.
       
   230     self deny:(result = nil).
       
   231     self assert:(result deleted = 0).
       
   232     self assert:(result inserted = 3).
       
   233     self assert:(result line0 = 2).
       
   234     self assert:(result line1 = 2).
       
   235     result := result nextLink.
       
   236     self deny:(result = nil).
       
   237     self assert:(result deleted = 0).
       
   238     self assert:(result inserted = 1).
       
   239     self assert:(result line0 = 4).
       
   240     self assert:(result line1 = 7).
       
   241     result := result nextLink.
       
   242     self deny:(result = nil).
       
   243     self assert:(result deleted = 0).
       
   244     self assert:(result inserted = 5).
       
   245     self assert:(result line0 = 6).
       
   246     self assert:(result line1 = 10).
       
   247     self assert:(result nextLink = nil).
       
   248 !
       
   249 
       
   250 testForward8
       
   251     "comment stating purpose of message"
       
   252     
       
   253     |d a b result|
       
   254 
       
   255     a := #( 'aaaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   256     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   257     d := Diff new.
       
   258     d a:a b:b.
       
   259     result := d diff:false.
       
   260     self deny:(result = nil).
       
   261     self assert:(result deleted = 1).
       
   262     self assert:(result inserted = 0).
       
   263     self assert:(result line0 = 0).
       
   264     self assert:(result line1 = 0).
       
   265     result := result nextLink.
       
   266     self deny:(result = nil).
       
   267     self assert:(result deleted = 1).
       
   268     self assert:(result inserted = 4).
       
   269     self assert:(result line0 = 2).
       
   270     self assert:(result line1 = 1).
       
   271     result := result nextLink.
       
   272     self deny:(result = nil).
       
   273     self assert:(result deleted = 0).
       
   274     self assert:(result inserted = 1).
       
   275     self assert:(result line0 = 4).
       
   276     self assert:(result line1 = 6).
       
   277     result := result nextLink.
       
   278     self deny:(result = nil).
       
   279     self assert:(result deleted = 0).
       
   280     self assert:(result inserted = 5).
       
   281     self assert:(result line0 = 6).
       
   282     self assert:(result line1 = 9).
       
   283     self assert:(result nextLink = nil).
       
   284 !
       
   285 
       
   286 testForward9
       
   287     "comment stating purpose of message"
       
   288     
       
   289     |d a b result|
       
   290 
       
   291     a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   292     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   293     d := Diff new.
       
   294     d a:a b:b.
       
   295     result := d diff:false.
       
   296     self deny:(result = nil).
       
   297     self assert:(result deleted = 1).
       
   298     self assert:(result inserted = 0).
       
   299     self assert:(result line0 = 0).
       
   300     self assert:(result line1 = 0).
       
   301     result := result nextLink.
       
   302     self deny:(result = nil).
       
   303     self assert:(result deleted = 1).
       
   304     self assert:(result inserted = 4).
       
   305     self assert:(result line0 = 2).
       
   306     self assert:(result line1 = 1).
       
   307     result := result nextLink.
       
   308     self deny:(result = nil).
       
   309     self assert:(result deleted = 0).
       
   310     self assert:(result inserted = 1).
       
   311     self assert:(result line0 = 4).
       
   312     self assert:(result line1 = 6).
       
   313     result := result nextLink.
       
   314     self deny:(result = nil).
       
   315     self assert:(result deleted = 0).
       
   316     self assert:(result inserted = 5).
       
   317     self assert:(result line0 = 6).
       
   318     self assert:(result line1 = 9).
       
   319     self assert:(result nextLink = nil).
       
   320 !
       
   321 
       
   322 testForward9NoDiscards
       
   323     "comment stating purpose of message"
       
   324     
       
   325     |d a b result|
       
   326 
       
   327     a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   328     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   329     d := Diff new.
       
   330     d nodiscards:true.
       
   331     d a:a b:b.
       
   332     result := d diff:false.
       
   333     self deny:(result = nil).
       
   334     self assert:(result deleted = 1).
       
   335     self assert:(result inserted = 0).
       
   336     self assert:(result line0 = 0).
       
   337     self assert:(result line1 = 0).
       
   338     result := result nextLink.
       
   339     self deny:(result = nil).
       
   340     self assert:(result deleted = 1).
       
   341     self assert:(result inserted = 4).
       
   342     self assert:(result line0 = 2).
       
   343     self assert:(result line1 = 1).
       
   344     result := result nextLink.
       
   345     self deny:(result = nil).
       
   346     self assert:(result deleted = 0).
       
   347     self assert:(result inserted = 1).
       
   348     self assert:(result line0 = 4).
       
   349     self assert:(result line1 = 6).
       
   350     result := result nextLink.
       
   351     self deny:(result = nil).
       
   352     self assert:(result deleted = 0).
       
   353     self assert:(result inserted = 5).
       
   354     self assert:(result line0 = 6).
       
   355     self assert:(result line1 = 9).
       
   356     self assert:(result nextLink = nil).
       
   357 !
       
   358 
       
   359 testReverse
       
   360     |diff change first second|
       
   361 
       
   362     first := #( '1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' ).
       
   363     second := #( '1' '2' '3' '5' '7' '8' '8' '9' '10' '11' '11' '12' '13' ).
       
   364     diff := Diff new.
       
   365     diff a:first b:second.
       
   366     change := diff diff:false.
       
   367     self assert:(change ~= nil).
       
   368 
       
   369     "Modified: / 12-02-2010 / 14:23:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   370 !
       
   371 
       
   372 testReverse1
       
   373     "comment stating purpose of message"
       
   374     
       
   375     |d a b result|
       
   376 
       
   377     a := ''.
       
   378     b := ''.
       
   379     d := Diff new.
       
   380     d a:a b:b.
       
   381     result := d diff:false.
       
   382     self assert:(result = nil).
       
   383 !
       
   384 
       
   385 testReverse10
       
   386     "comment stating purpose of message"
       
   387     
       
   388     |d a b result|
       
   389 
       
   390     a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ',' 'ccccc' ',' 'ccccc' ).
       
   391     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   392     d := Diff new.
       
   393     d a:a b:b.
       
   394     result := d diffUsingScript:(Diff::ReverseScript new).
       
   395     self deny:(result = nil).
       
   396     self assert:(result deleted = 4).
       
   397     self assert:(result inserted = 0).
       
   398     self assert:(result line0 = 8).
       
   399     self assert:(result line1 = 16).
       
   400     result := result nextLink.
       
   401     self deny:(result = nil).
       
   402     self assert:(result deleted = 0).
       
   403     self assert:(result inserted = 5).
       
   404     self assert:(result line0 = 6).
       
   405     self assert:(result line1 = 9).
       
   406     result := result nextLink.
       
   407     self deny:(result = nil).
       
   408     self assert:(result deleted = 0).
       
   409     self assert:(result inserted = 1).
       
   410     self assert:(result line0 = 4).
       
   411     self assert:(result line1 = 6).
       
   412     result := result nextLink.
       
   413     self deny:(result = nil).
       
   414     self assert:(result deleted = 1).
       
   415     self assert:(result inserted = 4).
       
   416     self assert:(result line0 = 2).
       
   417     self assert:(result line1 = 1).
       
   418     result := result nextLink.
       
   419     self deny:(result = nil).
       
   420     self assert:(result deleted = 1).
       
   421     self assert:(result inserted = 0).
       
   422     self assert:(result line0 = 0).
       
   423     self assert:(result line1 = 0).
       
   424     self assert:(result nextLink = nil).
       
   425 !
       
   426 
       
   427 testReverse2
       
   428     "comment stating purpose of message"
       
   429     
       
   430     |d a b result|
       
   431 
       
   432     a := ''.
       
   433     b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ).
       
   434     d := Diff new.
       
   435     d a:a b:b.
       
   436     result := d diffUsingScript:(Diff::ReverseScript new).
       
   437     self deny:(result = nil).
       
   438     self assert:(result deleted = 0).
       
   439     self assert:(result inserted = 11).
       
   440     self assert:(result line0 = 0).
       
   441     self assert:(result line1 = 0).
       
   442     self assert:(result nextLink = nil).
       
   443 !
       
   444 
       
   445 testReverse3
       
   446     "comment stating purpose of message"
       
   447     
       
   448     |d a b result|
       
   449 
       
   450     a := #( 'aaa' 'lll' ).
       
   451     b := ''.
       
   452     d := Diff new.
       
   453     d a:a b:b.
       
   454     result := d diffUsingScript:(Diff::ReverseScript new).
       
   455     self deny:(result = nil).
       
   456     self assert:(result deleted = 2).
       
   457     self assert:(result inserted = 0).
       
   458     self assert:(result line0 = 0).
       
   459     self assert:(result line1 = 0).
       
   460     self assert:(result nextLink = nil).
       
   461 !
       
   462 
       
   463 testReverse4
       
   464     "comment stating purpose of message"
       
   465     
       
   466     |d a b result|
       
   467 
       
   468     a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   469     b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ).
       
   470     d := Diff new.
       
   471     d a:a b:b.
       
   472     result := d diffUsingScript:(Diff::ReverseScript new).
       
   473     self deny:(result = nil).
       
   474     self assert:(result deleted = 0).
       
   475     self assert:(result inserted = 6).
       
   476     self assert:(result line0 = 5).
       
   477     self assert:(result line1 = 10).
       
   478     result := result nextLink.
       
   479     self deny:(result = nil).
       
   480     self assert:(result deleted = 0).
       
   481     self assert:(result inserted = 5).
       
   482     self assert:(result line0 = 1).
       
   483     self assert:(result line1 = 1).
       
   484     self assert:(result nextLink = nil).
       
   485 !
       
   486 
       
   487 testReverse5
       
   488     "comment stating purpose of message"
       
   489     
       
   490     |d a b result|
       
   491 
       
   492     a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   493     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   494     d := Diff new.
       
   495     d a:a b:b.
       
   496     result := d diffUsingScript:(Diff::ReverseScript new).
       
   497     self deny:(result = nil).
       
   498     self assert:(result deleted = 0).
       
   499     self assert:(result inserted = 5).
       
   500     self assert:(result line0 = 4).
       
   501     self assert:(result line1 = 9).
       
   502     result := result nextLink.
       
   503     self deny:(result = nil).
       
   504     self assert:(result deleted = 0).
       
   505     self assert:(result inserted = 5).
       
   506     self assert:(result line0 = 2).
       
   507     self assert:(result line1 = 2).
       
   508     self assert:(result nextLink = nil).
       
   509 !
       
   510 
       
   511 testReverse6
       
   512     "comment stating purpose of message"
       
   513     
       
   514     |d a b result|
       
   515 
       
   516     a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   517     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   518     d := Diff new.
       
   519     d a:a b:b.
       
   520     result := d diffUsingScript:(Diff::ReverseScript new).
       
   521     self deny:(result = nil).
       
   522     self assert:(result deleted = 0).
       
   523     self assert:(result inserted = 5).
       
   524     self assert:(result line0 = 6).
       
   525     self assert:(result line1 = 9).
       
   526     result := result nextLink.
       
   527     self deny:(result = nil).
       
   528     self assert:(result deleted = 1).
       
   529     self assert:(result inserted = 1).
       
   530     self assert:(result line0 = 3).
       
   531     self assert:(result line1 = 6).
       
   532     result := result nextLink.
       
   533     self deny:(result = nil).
       
   534     self assert:(result deleted = 0).
       
   535     self assert:(result inserted = 3).
       
   536     self assert:(result line0 = 2).
       
   537     self assert:(result line1 = 2).
       
   538     self assert:(result nextLink = nil).
       
   539 !
       
   540 
       
   541 testReverse7
       
   542     "comment stating purpose of message"
       
   543     
       
   544     |d a b result|
       
   545 
       
   546     a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   547     b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   548     d := Diff new.
       
   549     d a:a b:b.
       
   550     result := d diffUsingScript:(Diff::ReverseScript new).
       
   551     self deny:(result = nil).
       
   552     self assert:(result deleted = 0).
       
   553     self assert:(result inserted = 5).
       
   554     self assert:(result line0 = 6).
       
   555     self assert:(result line1 = 10).
       
   556     result := result nextLink.
       
   557     self deny:(result = nil).
       
   558     self assert:(result deleted = 0).
       
   559     self assert:(result inserted = 1).
       
   560     self assert:(result line0 = 4).
       
   561     self assert:(result line1 = 7).
       
   562     result := result nextLink.
       
   563     self deny:(result = nil).
       
   564     self assert:(result deleted = 0).
       
   565     self assert:(result inserted = 3).
       
   566     self assert:(result line0 = 2).
       
   567     self assert:(result line1 = 2).
       
   568     self assert:(result nextLink = nil).
       
   569 !
       
   570 
       
   571 testReverse8
       
   572     "comment stating purpose of message"
       
   573     
       
   574     |d a b result|
       
   575 
       
   576     a := #( 'aaaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   577     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   578     d := Diff new.
       
   579     d a:a b:b.
       
   580     result := d diffUsingScript:(Diff::ReverseScript new).
       
   581     self deny:(result = nil).
       
   582     self assert:(result deleted = 0).
       
   583     self assert:(result inserted = 5).
       
   584     self assert:(result line0 = 6).
       
   585     self assert:(result line1 = 9).
       
   586     result := result nextLink.
       
   587     self deny:(result = nil).
       
   588     self assert:(result deleted = 0).
       
   589     self assert:(result inserted = 1).
       
   590     self assert:(result line0 = 4).
       
   591     self assert:(result line1 = 6).
       
   592     result := result nextLink.
       
   593     self deny:(result = nil).
       
   594     self assert:(result deleted = 1).
       
   595     self assert:(result inserted = 4).
       
   596     self assert:(result line0 = 2).
       
   597     self assert:(result line1 = 1).
       
   598     result := result nextLink.
       
   599     self deny:(result = nil).
       
   600     self assert:(result deleted = 1).
       
   601     self assert:(result inserted = 0).
       
   602     self assert:(result line0 = 0).
       
   603     self assert:(result line1 = 0).
       
   604     self assert:(result nextLink = nil).
       
   605 !
       
   606 
       
   607 testReverse9
       
   608     "comment stating purpose of message"
       
   609     
       
   610     |d a b result|
       
   611 
       
   612     a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ).
       
   613     b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ).
       
   614     d := Diff new.
       
   615     d a:a b:b.
       
   616     result := d diffUsingScript:(Diff::ReverseScript new).
       
   617     self deny:(result = nil).
       
   618     self assert:(result deleted = 0).
       
   619     self assert:(result inserted = 5).
       
   620     self assert:(result line0 = 6).
       
   621     self assert:(result line1 = 9).
       
   622     result := result nextLink.
       
   623     self deny:(result = nil).
       
   624     self assert:(result deleted = 0).
       
   625     self assert:(result inserted = 1).
       
   626     self assert:(result line0 = 4).
       
   627     self assert:(result line1 = 6).
       
   628     result := result nextLink.
       
   629     self deny:(result = nil).
       
   630     self assert:(result deleted = 1).
       
   631     self assert:(result inserted = 4).
       
   632     self assert:(result line0 = 2).
       
   633     self assert:(result line1 = 1).
       
   634     result := result nextLink.
       
   635     self deny:(result = nil).
       
   636     self assert:(result deleted = 1).
       
   637     self assert:(result inserted = 0).
       
   638     self assert:(result line0 = 0).
       
   639     self assert:(result line1 = 0).
       
   640     self assert:(result nextLink = nil).
       
   641 ! !
       
   642 
       
   643 !TextDiffTests class methodsFor:'documentation'!
       
   644 
       
   645 version_CVS
       
   646     ^ '$Header: /cvs/stx/stx/libtool/TextDiffTests.st,v 1.1 2011-07-01 14:12:24 cg Exp $'
       
   647 !
       
   648 
       
   649 version_SVN
       
   650     ^ '§Id: TextDiffTests.st 7546 2010-02-25 21:31:39Z vranyj1 §'
       
   651 ! !