mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
improve formatting in assertEquals
This commit is contained in:
@@ -14,8 +14,8 @@ proc mismatch*[T](lhs: T, rhs: T): string =
|
||||
proc quoted(s: string): string = result.addQuoted s
|
||||
|
||||
result.add "\n"
|
||||
result.add "lhs:{\n" & replaceInvisible(
|
||||
$lhs) & "}\nrhs:{\n" & replaceInvisible($rhs) & "}\n"
|
||||
result.add "lhs:{" & replaceInvisible(
|
||||
$lhs) & "}\nrhs:{" & replaceInvisible($rhs) & "}\n"
|
||||
when compiles(lhs.len):
|
||||
if lhs.len != rhs.len:
|
||||
result.add "lhs.len: " & $lhs.len & " rhs.len: " & $rhs.len & "\n"
|
||||
@@ -26,12 +26,13 @@ proc mismatch*[T](lhs: T, rhs: T): string =
|
||||
i.inc
|
||||
result.add "first mismatch index: " & $i & "\n"
|
||||
if i < lhs.len and i < rhs.len:
|
||||
result.add "lhs[i]: {" & quoted($lhs[i]) & "} rhs[i]: {" & quoted(
|
||||
$rhs[i]) & "}"
|
||||
result.add "lhs[0..<i]:{\n" & replaceInvisible($lhs[
|
||||
0..<i]) & "}\nrhs[0..<i]:{\n" & replaceInvisible($rhs[0..<i]) & "}"
|
||||
result.add "lhs[i]: {" & quoted($lhs[i]) & "}\nrhs[i]: {" & quoted(
|
||||
$rhs[i]) & "}\n"
|
||||
result.add "lhs[0..<i]:{" & replaceInvisible($lhs[
|
||||
0..<i]) & "}"
|
||||
|
||||
proc assertEquals*[T](lhs: T, rhs: T) =
|
||||
when false: # can be useful for debugging to see all that's fed to this.
|
||||
echo "----" & $lhs
|
||||
doAssert lhs==rhs, mismatch(lhs, rhs)
|
||||
if lhs!=rhs:
|
||||
doAssert false, mismatch(lhs, rhs)
|
||||
|
||||
@@ -24,17 +24,16 @@ proc testMismatch() =
|
||||
|
||||
"""
|
||||
|
||||
doAssert mismatch(a, b) == """
|
||||
let output = mismatch(a, b)
|
||||
let expected = """
|
||||
|
||||
lhs:{
|
||||
some test with space at the end of lines \n
|
||||
lhs:{ some test with space at the end of lines \n
|
||||
\n
|
||||
can be hard to spot differences when diffing in a terminal \n
|
||||
without this helper function\n
|
||||
\n
|
||||
}
|
||||
rhs:{
|
||||
some test with space at the end of lines \n
|
||||
rhs:{ some test with space at the end of lines \n
|
||||
\n
|
||||
can be hard to spot differences when diffing in a terminal \n
|
||||
without this helper function\n
|
||||
@@ -42,14 +41,15 @@ rhs:{
|
||||
}
|
||||
lhs.len: 144 rhs.len: 143
|
||||
first mismatch index: 110
|
||||
lhs[i]: {" "} rhs[i]: {"\n"}lhs[0..<i]:{
|
||||
some test with space at the end of lines \n
|
||||
\n
|
||||
can be hard to spot differences when diffing in a terminal }
|
||||
rhs[0..<i]:{
|
||||
some test with space at the end of lines \n
|
||||
lhs[i]: {" "}
|
||||
rhs[i]: {"\n"}
|
||||
lhs[0..<i]:{ some test with space at the end of lines \n
|
||||
\n
|
||||
can be hard to spot differences when diffing in a terminal }"""
|
||||
|
||||
if output != expected:
|
||||
echo output
|
||||
doAssert false
|
||||
|
||||
testMismatch()
|
||||
testAssertEquals()
|
||||
|
||||
Reference in New Issue
Block a user