12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- discard """
- matrix: "--mm:refc; --mm:orc"
- targets: "c js"
- """
- import experimental/diff
- import std/strutils
- import std/assertions
- proc testHelper(f: seq[Item]): string =
- for it in f:
- result.add(
- $it.deletedA & "." & $it.insertedB & "." & $it.startA & "." & $it.startB & "*"
- )
- proc main() =
- var a, b: string
- # Diff Self Test
- # test all changes
- a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
- b = "0,1,2,3,4,5,6,7,8,9".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "12.10.0.0*",
- "all-changes test failed.")
- # test all same
- a = "a,b,c,d,e,f,g,h,i,j,k,l".replace(',', '\n')
- b = a
- doAssert(testHelper(diffText(a, b)) ==
- "",
- "all-same test failed.")
- # test snake
- a = "a,b,c,d,e,f".replace(',', '\n')
- b = "b,c,d,e,f,x".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "1.0.0.0*0.1.6.5*",
- "snake test failed.")
- # 2002.09.20 - repro
- a = "c1,a,c2,b,c,d,e,g,h,i,j,c3,k,l".replace(',', '\n')
- b = "C1,a,C2,b,c,d,e,I1,e,g,h,i,j,C3,k,I2,l".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "1.1.0.0*1.1.2.2*0.2.7.7*1.1.11.13*0.1.13.15*",
- "repro20020920 test failed.")
- # 2003.02.07 - repro
- a = "F".replace(',', '\n')
- b = "0,F,1,2,3,4,5,6,7".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "0.1.0.0*0.7.1.2*",
- "repro20030207 test failed.")
- # Muegel - repro
- a = "HELLO\nWORLD"
- b = "\n\nhello\n\n\n\nworld\n"
- doAssert(testHelper(diffText(a, b)) ==
- "2.8.0.0*",
- "repro20030409 test failed.")
- # test some differences
- a = "a,b,-,c,d,e,f,f".replace(',', '\n')
- b = "a,b,x,c,e,f".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "1.1.2.2*1.0.4.4*1.0.7.6*",
- "some-changes test failed.")
- # test one change within long chain of repeats
- a = "a,a,a,a,a,a,a,a,a,a".replace(',', '\n')
- b = "a,a,a,a,-,a,a,a,a,a".replace(',', '\n')
- doAssert(testHelper(diffText(a, b)) ==
- "0.1.4.4*1.0.9.10*",
- "long chain of repeats test failed.")
- main()
- static: main()
|