43 lines
1.4 KiB
Go
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"},
|
|
}
|