@@ -5,32 +5,32 @@ open LeanTest
55
66def runLengthEncodingTests : TestSuite :=
77 (TestSuite.empty "RunLengthEncoding" )
8- |>.addTest "run-length encode a string - empty string" (do
9- return assertEqual "" (RunLengthEncoding.encode "" ))
10- |>.addTest "run-length encode a string - single characters only are encoded without count" (do
11- return assertEqual "XYZ" (RunLengthEncoding.encode "XYZ" ))
12- |>.addTest "run-length encode a string - string with no single characters" (do
13- return assertEqual "2A3B4C" (RunLengthEncoding.encode "AABBBCCCC" ))
14- |>.addTest "run-length encode a string - single characters mixed with repeated characters" (do
15- return assertEqual "12WB12W3B24WB" (RunLengthEncoding.encode "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" ))
16- |>.addTest "run-length encode a string - multiple whitespace mixed in string" (do
17- return assertEqual "2 hs2q q2w2 " (RunLengthEncoding.encode " hsqq qww " ))
18- |>.addTest "run-length encode a string - lowercase characters" (do
19- return assertEqual "2a3b4c" (RunLengthEncoding.encode "aabbbcccc" ))
20- |>.addTest "run-length decode a string - empty string" (do
21- return assertEqual "" (RunLengthEncoding.decode "" ))
22- |>.addTest "run-length decode a string - single characters only" (do
23- return assertEqual "XYZ" (RunLengthEncoding.decode "XYZ" ))
24- |>.addTest "run-length decode a string - string with no single characters" (do
25- return assertEqual "AABBBCCCC" (RunLengthEncoding.decode "2A3B4C" ))
26- |>.addTest "run-length decode a string - single characters with repeated characters" (do
27- return assertEqual "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" (RunLengthEncoding.decode "12WB12W3B24WB" ))
28- |>.addTest "run-length decode a string - multiple whitespace mixed in string" (do
29- return assertEqual " hsqq qww " (RunLengthEncoding.decode "2 hs2q q2w2 " ))
30- |>.addTest "run-length decode a string - lowercase string" (do
31- return assertEqual "aabbbcccc" (RunLengthEncoding.decode "2a3b4c" ))
32- |>.addTest "encode and then decode - encode followed by decode gives original string" (do
33- return assertEqual "zzz ZZ zZ" (RunLengthEncoding.decode (RunLengthEncoding.encode "zzz ZZ zZ" ) ))
8+ |>.addTest "run-length encode a string -> empty string" (do
9+ return assertEqual "" ("" |> RunLengthEncoding.encode))
10+ |>.addTest "run-length encode a string -> single characters only are encoded without count" (do
11+ return assertEqual "XYZ" ("XYZ" |> RunLengthEncoding.encode ))
12+ |>.addTest "run-length encode a string -> string with no single characters" (do
13+ return assertEqual "2A3B4C" ("AABBBCCCC" |> RunLengthEncoding.encode ))
14+ |>.addTest "run-length encode a string -> single characters mixed with repeated characters" (do
15+ return assertEqual "12WB12W3B24WB" ("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" |> RunLengthEncoding.encode ))
16+ |>.addTest "run-length encode a string -> multiple whitespace mixed in string" (do
17+ return assertEqual "2 hs2q q2w2 " (" hsqq qww " |> RunLengthEncoding.encode ))
18+ |>.addTest "run-length encode a string -> lowercase characters" (do
19+ return assertEqual "2a3b4c" ("aabbbcccc" |> RunLengthEncoding.encode ))
20+ |>.addTest "run-length decode a string -> empty string" (do
21+ return assertEqual "" ("" |> RunLengthEncoding.decode))
22+ |>.addTest "run-length decode a string -> single characters only" (do
23+ return assertEqual "XYZ" ("XYZ" |> RunLengthEncoding.decode ))
24+ |>.addTest "run-length decode a string -> string with no single characters" (do
25+ return assertEqual "AABBBCCCC" ("2A3B4C" |> RunLengthEncoding.decode ))
26+ |>.addTest "run-length decode a string -> single characters with repeated characters" (do
27+ return assertEqual "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" ("12WB12W3B24WB" |> RunLengthEncoding.decode ))
28+ |>.addTest "run-length decode a string -> multiple whitespace mixed in string" (do
29+ return assertEqual " hsqq qww " ("2 hs2q q2w2 " |> RunLengthEncoding.decode ))
30+ |>.addTest "run-length decode a string -> lowercase string" (do
31+ return assertEqual "aabbbcccc" ("2a3b4c" |> RunLengthEncoding.decode ))
32+ |>.addTest "encode and then decode -> encode followed by decode gives original string" (do
33+ return assertEqual "zzz ZZ zZ" ("zzz ZZ zZ" |> RunLengthEncoding.encode |> RunLengthEncoding.decode ))
3434
3535def main : IO UInt32 := do
3636 runTestSuitesWithExitCode [runLengthEncodingTests]
0 commit comments