Skip to content

Commit d29eddf

Browse files
authored
experimental/diff: move isMainModule block to tests/stdlib/tdiff.nim (#16172)
1 parent 1d786c0 commit d29eddf

File tree

2 files changed

+73
-80
lines changed

2 files changed

+73
-80
lines changed

lib/experimental/diff.nim

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -331,83 +331,3 @@ proc diffText*(textA, textB: string): seq[Item] =
331331
optimize(dataA)
332332
optimize(dataB)
333333
result = createDiffs(dataA, dataB)
334-
335-
when isMainModule:
336-
337-
proc testHelper(f: seq[Item]): string =
338-
for it in f:
339-
result.add(
340-
$it.deletedA & "." & $it.insertedB & "." & $it.startA & "." & $it.startB & "*"
341-
)
342-
343-
proc main() =
344-
var a, b: string
345-
346-
stdout.writeLine("Diff Self Test...")
347-
348-
# test all changes
349-
a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
350-
b = "0,1,2,3,4,5,6,7,8,9".replace(',', '\n')
351-
assert(testHelper(diffText(a, b)) ==
352-
"12.10.0.0*",
353-
"all-changes test failed.")
354-
stdout.writeLine("all-changes test passed.")
355-
# test all same
356-
a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
357-
b = a
358-
assert(testHelper(diffText(a, b)) ==
359-
"",
360-
"all-same test failed.")
361-
stdout.writeLine("all-same test passed.")
362-
363-
# test snake
364-
a = "a,b,c,d,e,f".replace(',', '\n')
365-
b = "b,c,d,e,f,x".replace(',', '\n')
366-
assert(testHelper(diffText(a, b)) ==
367-
"1.0.0.0*0.1.6.5*",
368-
"snake test failed.")
369-
stdout.writeLine("snake test passed.")
370-
371-
# 2002.09.20 - repro
372-
a = "c1,a,c2,b,c,d,e,g,h,i,j,c3,k,l".replace(',', '\n')
373-
b = "C1,a,C2,b,c,d,e,I1,e,g,h,i,j,C3,k,I2,l".replace(',', '\n')
374-
assert(testHelper(diffText(a, b)) ==
375-
"1.1.0.0*1.1.2.2*0.2.7.7*1.1.11.13*0.1.13.15*",
376-
"repro20020920 test failed.")
377-
stdout.writeLine("repro20020920 test passed.")
378-
379-
# 2003.02.07 - repro
380-
a = "F".replace(',', '\n')
381-
b = "0,F,1,2,3,4,5,6,7".replace(',', '\n')
382-
assert(testHelper(diffText(a, b)) ==
383-
"0.1.0.0*0.7.1.2*",
384-
"repro20030207 test failed.")
385-
stdout.writeLine("repro20030207 test passed.")
386-
387-
# Muegel - repro
388-
a = "HELLO\nWORLD"
389-
b = "\n\nhello\n\n\n\nworld\n"
390-
assert(testHelper(diffText(a, b)) ==
391-
"2.8.0.0*",
392-
"repro20030409 test failed.")
393-
stdout.writeLine("repro20030409 test passed.")
394-
395-
# test some differences
396-
a = "a,b,-,c,d,e,f,f".replace(',', '\n')
397-
b = "a,b,x,c,e,f".replace(',', '\n')
398-
assert(testHelper(diffText(a, b)) ==
399-
"1.1.2.2*1.0.4.4*1.0.7.6*",
400-
"some-changes test failed.")
401-
stdout.writeLine("some-changes test passed.")
402-
403-
# test one change within long chain of repeats
404-
a = "a,a,a,a,a,a,a,a,a,a".replace(',', '\n')
405-
b = "a,a,a,a,-,a,a,a,a,a".replace(',', '\n')
406-
assert(testHelper(diffText(a, b)) ==
407-
"0.1.4.4*1.0.9.10*",
408-
"long chain of repeats test failed.")
409-
410-
stdout.writeLine("End.")
411-
stdout.flushFile
412-
413-
main()

tests/stdlib/tdiff.nim

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
discard """
2+
targets: "c js"
3+
"""
4+
5+
import experimental/diff
6+
import std/strutils
7+
8+
proc testHelper(f: seq[Item]): string =
9+
for it in f:
10+
result.add(
11+
$it.deletedA & "." & $it.insertedB & "." & $it.startA & "." & $it.startB & "*"
12+
)
13+
14+
proc main() =
15+
var a, b: string
16+
17+
# Diff Self Test
18+
# test all changes
19+
a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
20+
b = "0,1,2,3,4,5,6,7,8,9".replace(',', '\n')
21+
doAssert(testHelper(diffText(a, b)) ==
22+
"12.10.0.0*",
23+
"all-changes test failed.")
24+
# test all same
25+
a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
26+
b = a
27+
doAssert(testHelper(diffText(a, b)) ==
28+
"",
29+
"all-same test failed.")
30+
31+
# test snake
32+
a = "a,b,c,d,e,f".replace(',', '\n')
33+
b = "b,c,d,e,f,x".replace(',', '\n')
34+
doAssert(testHelper(diffText(a, b)) ==
35+
"1.0.0.0*0.1.6.5*",
36+
"snake test failed.")
37+
38+
# 2002.09.20 - repro
39+
a = "c1,a,c2,b,c,d,e,g,h,i,j,c3,k,l".replace(',', '\n')
40+
b = "C1,a,C2,b,c,d,e,I1,e,g,h,i,j,C3,k,I2,l".replace(',', '\n')
41+
doAssert(testHelper(diffText(a, b)) ==
42+
"1.1.0.0*1.1.2.2*0.2.7.7*1.1.11.13*0.1.13.15*",
43+
"repro20020920 test failed.")
44+
45+
# 2003.02.07 - repro
46+
a = "F".replace(',', '\n')
47+
b = "0,F,1,2,3,4,5,6,7".replace(',', '\n')
48+
doAssert(testHelper(diffText(a, b)) ==
49+
"0.1.0.0*0.7.1.2*",
50+
"repro20030207 test failed.")
51+
52+
# Muegel - repro
53+
a = "HELLO\nWORLD"
54+
b = "\n\nhello\n\n\n\nworld\n"
55+
doAssert(testHelper(diffText(a, b)) ==
56+
"2.8.0.0*",
57+
"repro20030409 test failed.")
58+
59+
# test some differences
60+
a = "a,b,-,c,d,e,f,f".replace(',', '\n')
61+
b = "a,b,x,c,e,f".replace(',', '\n')
62+
doAssert(testHelper(diffText(a, b)) ==
63+
"1.1.2.2*1.0.4.4*1.0.7.6*",
64+
"some-changes test failed.")
65+
66+
# test one change within long chain of repeats
67+
a = "a,a,a,a,a,a,a,a,a,a".replace(',', '\n')
68+
b = "a,a,a,a,-,a,a,a,a,a".replace(',', '\n')
69+
doAssert(testHelper(diffText(a, b)) ==
70+
"0.1.4.4*1.0.9.10*",
71+
"long chain of repeats test failed.")
72+
main()
73+
static: main()

0 commit comments

Comments
 (0)