tests/test-bdiff.py
changeset 30593 4286015285ec
parent 30592 0d8cada9998d
child 30594 ea648e8f8a34
equal deleted inserted replaced
30592:0d8cada9998d 30593:4286015285ec
    92               'f\n']),
    92               'f\n']),
    93         ]
    93         ]
    94         for old, new, want in cases:
    94         for old, new, want in cases:
    95             self.assertEqual(self.showdiff(old, new), want)
    95             self.assertEqual(self.showdiff(old, new), want)
    96 
    96 
       
    97     def test_fixws(self):
       
    98         cases = [
       
    99             (" \ta\r b\t\n", "ab\n", 1),
       
   100             (" \ta\r b\t\n", " a b\n", 0),
       
   101             ("", "", 1),
       
   102             ("", "", 0),
       
   103         ]
       
   104         for a, b, allws in cases:
       
   105             c = bdiff.fixws(a, allws)
       
   106             self.assertEqual(
       
   107                 c, b, 'fixws(%r) want %r got %r (allws=%r)' % (a, b, c, allws))
       
   108 
    97 def showdiff(a, b):
   109 def showdiff(a, b):
    98     print('showdiff(\n  %r,\n  %r):' % (a, b))
   110     print('showdiff(\n  %r,\n  %r):' % (a, b))
    99     bin = bdiff.bdiff(a, b)
   111     bin = bdiff.bdiff(a, b)
   100     pos = 0
   112     pos = 0
   101     q = 0
   113     q = 0
   107         print('', p1, p2, repr(a[p1:p2]), '->', repr(bin[pos:pos + l]))
   119         print('', p1, p2, repr(a[p1:p2]), '->', repr(bin[pos:pos + l]))
   108         pos += l
   120         pos += l
   109         q = p2
   121         q = p2
   110     if q < len(a):
   122     if q < len(a):
   111         print('', repr(a[q:]))
   123         print('', repr(a[q:]))
   112 
       
   113 def testfixws(a, b, allws):
       
   114     c = bdiff.fixws(a, allws)
       
   115     if c != b:
       
   116         print("*** fixws", repr(a), repr(b), allws)
       
   117         print("got:")
       
   118         print(repr(c))
       
   119 
       
   120 testfixws(" \ta\r b\t\n", "ab\n", 1)
       
   121 testfixws(" \ta\r b\t\n", " a b\n", 0)
       
   122 testfixws("", "", 1)
       
   123 testfixws("", "", 0)
       
   124 
       
   125 print("done")
       
   126 
   124 
   127 print("Nice diff for a trivial change:")
   125 print("Nice diff for a trivial change:")
   128 showdiff(
   126 showdiff(
   129     ''.join('<%s\n-\n' % i for i in range(5)),
   127     ''.join('<%s\n-\n' % i for i in range(5)),
   130     ''.join('>%s\n-\n' % i for i in range(5)))
   128     ''.join('>%s\n-\n' % i for i in range(5)))