Differ.coffee
 1  {Differ} = require '..'
 2  
 3  suite 'Differ'
 4  
 5  test '#_qformat', ->
 6    d = new Differ
 7    results = d._qformat('\tabcDefghiJkl\n', '\tabcdefGhijkl\n',
 8                         '  ^ ^  ^      ',   '  ^ ^  ^      ')
 9    results.should.eql [
10      '- \tabcDefghiJkl\n',
11      '? \t ^ ^  ^\n',
12      '+ \tabcdefGhijkl\n',
13      '? \t ^ ^  ^\n'
14    ]
15  
16  test '#_fancyReplace', ->
17    d = new Differ
18    d._fancyReplace(['abcDefghiJkl\n'], 0, 1,
19                    ['abcdefGhijkl\n'], 0, 1).should.eql [
20      '- abcDefghiJkl\n',
21      '?    ^  ^  ^\n',
22      '+ abcdefGhijkl\n',
23      '?    ^  ^  ^\n'
24    ]
25  
26  test '#compare', ->
27    d = new Differ
28    d.compare(['one\n', 'two\n', 'three\n'],
29              ['ore\n', 'tree\n', 'emu\n']).should.eql [
30      '- one\n',
31      '?  ^\n',
32      '+ ore\n',
33      '?  ^\n',
34      '- two\n',
35      '- three\n',
36      '?  -\n',
37      '+ tree\n',
38      '+ emu\n'
39    ]
40  
41    text1 = [
42      '1. Beautiful is better than ugly.\n',
43      '2. Explicit is better than implicit.\n',
44      '3. Simple is better than complex.\n',
45      '4. Complex is better than complicated.\n'
46    ]
47    text2 = [
48      '1. Beautiful is better than ugly.\n',
49      '3.   Simple is better than complex.\n',
50      '4. Complicated is better than complex.\n',
51      '5. Flat is better than nested.\n'
52    ]
53    d = new Differ()
54    d.compare(text1, text2).should.eql [
55      '  1. Beautiful is better than ugly.\n',
56      '- 2. Explicit is better than implicit.\n',
57      '- 3. Simple is better than complex.\n',
58      '+ 3.   Simple is better than complex.\n',
59      '?   ++\n',
60      '- 4. Complex is better than complicated.\n',
61      '?          ^                     ---- ^\n',
62      '+ 4. Complicated is better than complex.\n',
63      '?         ++++ ^                      ^\n',
64      '+ 5. Flat is better than nested.\n'
65    ]