2022-08-24 14:28:45 +02:00

43 lines
1.4 KiB
Go

package encode
// Source: exercism/problem-specifications
// Commit: 1b7900e run-length-encoding: apply "input" policy
// Problem Specifications Version: 1.1.0
// run-length encode a string
var encodeTests = []struct {
input string
expected string
description string
}{
{"", "", "empty string"},
{"XYZ", "XYZ", "single characters only are encoded without count"},
{"AABBBCCCC", "2A3B4C", "string with no single characters"},
{"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB", "12WB12W3B24WB", "single characters mixed with repeated characters"},
{" hsqq qww ", "2 hs2q q2w2 ", "multiple whitespace mixed in string"},
{"aabbbcccc", "2a3b4c", "lowercase characters"},
}
// run-length decode a string
var decodeTests = []struct {
input string
expected string
description string
}{
{"", "", "empty string"},
{"XYZ", "XYZ", "single characters only"},
{"2A3B4C", "AABBBCCCC", "string with no single characters"},
{"12WB12W3B24WB", "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB", "single characters with repeated characters"},
{"2 hs2q q2w2 ", " hsqq qww ", "multiple whitespace mixed in string"},
{"2a3b4c", "aabbbcccc", "lower case string"},
}
// encode and then decode
var encodeDecodeTests = []struct {
input string
expected string
description string
}{
{"zzz ZZ zZ", "zzz ZZ zZ", "encode followed by decode gives original string"},
}