diff -r b9d3ade2b5bc -r 09f8a872932e TextDiffTests.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextDiffTests.st Fri Jul 01 16:12:24 2011 +0200 @@ -0,0 +1,651 @@ +"{ Package: 'stx:libtool' }" + +TestCase subclass:#TextDiffTests + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Collections-Sequenceable-Diff' +! + +TextDiffTests comment:'asdfasfsafsafsa +' +! + +!TextDiffTests class methodsFor:'documentation'! + +documentation +" + + +" +! ! + +!TextDiffTests methodsFor:'default'! + +testForward + |diff change first second| + + first := #( 'aaa' 'lll' ). + second := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ). + diff := Diff new. + diff a:first b:second. + change := diff diff:false. + self deny:(change = nil). + self assert:(change deleted = 0). + self assert:(change inserted = 2). + self assert:(change line0 = 1). + self assert:(change line1 = 1). + change := change nextLink. + self deny:(change = nil). + self assert:(change deleted = 0). + self assert:(change inserted = 7). + self assert:(change line0 = 2). + self assert:(change line1 = 4). + self assert:(change nextLink = nil). + + "Modified: / 12-02-2010 / 14:23:04 / Jan Vrany " +! + +testForward1 + "comment stating purpose of this message" + + |d a b result| + + a := ''. + b := ''. + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ForwardScript new). + self assert:(result = nil). + + "Modified: / 12-02-2010 / 13:57:51 / Jan Vrany " +! + +testForward10 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' 'ccccc' 'ccccc' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 2). + self assert:(result inserted = 0). + self assert:(result line0 = 8). + self assert:(result line1 = 16). + self assert:(result nextLink = nil). +! + +testForward2 + "comment stating purpose of message" + + |d a b result| + + a := ''. + b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 11). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testForward3 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'lll' ). + b := ''. + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 2). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testForward4 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 1). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 6). + self assert:(result line0 = 5). + self assert:(result line1 = 10). + self assert:(result nextLink = nil). +! + +testForward5 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 4). + self assert:(result line1 = 9). + self assert:(result nextLink = nil). +! + +testForward6 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 3). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 1). + self assert:(result line0 = 3). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + self assert:(result nextLink = nil). +! + +testForward7 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 3). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 7). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 10). + self assert:(result nextLink = nil). +! + +testForward8 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + self assert:(result nextLink = nil). +! + +testForward9 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + self assert:(result nextLink = nil). +! + +testForward9NoDiscards + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d nodiscards:true. + d a:a b:b. + result := d diff:false. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + self assert:(result nextLink = nil). +! + +testReverse + |diff change first second| + + first := #( '1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' ). + second := #( '1' '2' '3' '5' '7' '8' '8' '9' '10' '11' '11' '12' '13' ). + diff := Diff new. + diff a:first b:second. + change := diff diff:false. + self assert:(change ~= nil). + + "Modified: / 12-02-2010 / 14:23:07 / Jan Vrany " +! + +testReverse1 + "comment stating purpose of message" + + |d a b result| + + a := ''. + b := ''. + d := Diff new. + d a:a b:b. + result := d diff:false. + self assert:(result = nil). +! + +testReverse10 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ',' 'ccccc' ',' 'ccccc' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 4). + self assert:(result inserted = 0). + self assert:(result line0 = 8). + self assert:(result line1 = 16). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testReverse2 + "comment stating purpose of message" + + |d a b result| + + a := ''. + b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 11). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testReverse3 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'lll' ). + b := ''. + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 2). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testReverse4 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 6). + self assert:(result line0 = 5). + self assert:(result line1 = 10). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 1). + self assert:(result line1 = 1). + self assert:(result nextLink = nil). +! + +testReverse5 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 4). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + self assert:(result nextLink = nil). +! + +testReverse6 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 1). + self assert:(result line0 = 3). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 3). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + self assert:(result nextLink = nil). +! + +testReverse7 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaa' 'jjj' 'kkk' 'lll' 'bbb' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 10). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 7). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 3). + self assert:(result line0 = 2). + self assert:(result line1 = 2). + self assert:(result nextLink = nil). +! + +testReverse8 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! + +testReverse9 + "comment stating purpose of message" + + |d a b result| + + a := #( 'aaaa' 'aaa' 'bbbb' 'bbb' 'aaa' 'aaa' 'aaa' 'aaa' ). + b := #( 'aaa' 'aaaa' 'jjj' 'kkk' 'lll' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). + d := Diff new. + d a:a b:b. + result := d diffUsingScript:(Diff::ReverseScript new). + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 5). + self assert:(result line0 = 6). + self assert:(result line1 = 9). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 0). + self assert:(result inserted = 1). + self assert:(result line0 = 4). + self assert:(result line1 = 6). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 4). + self assert:(result line0 = 2). + self assert:(result line1 = 1). + result := result nextLink. + self deny:(result = nil). + self assert:(result deleted = 1). + self assert:(result inserted = 0). + self assert:(result line0 = 0). + self assert:(result line1 = 0). + self assert:(result nextLink = nil). +! ! + +!TextDiffTests class methodsFor:'documentation'! + +version_CVS + ^ '$Header: /cvs/stx/stx/libtool/TextDiffTests.st,v 1.1 2011-07-01 14:12:24 cg Exp $' +! + +version_SVN + ^ '§Id: TextDiffTests.st 7546 2010-02-25 21:31:39Z vranyj1 §' +! !