tracks/csharp/exercises/run-length-encoding/RunLengthEncodingTest.cs in trackler-2.2.1.12 vs tracks/csharp/exercises/run-length-encoding/RunLengthEncodingTest.cs in trackler-2.2.1.13
- old
+ new
@@ -1,60 +1,84 @@
-using Xunit;
+// This file was auto-generated based on version 1.0.0 of the canonical data.
+using Xunit;
+
public class RunLengthEncodingTest
{
[Fact]
- public void Encode_simple()
+ public void Encode_empty_string()
{
- const string input = "AABBBCCCC";
- const string expected = "2A3B4C";
- Assert.Equal(expected, RunLengthEncoding.Encode(input));
+ Assert.Equal("", RunLengthEncoding.Encode(""));
}
[Fact(Skip = "Remove to run test")]
- public void Decode_simple()
+ public void Encode_single_characters_only_are_encoded_without_count()
{
- const string input = "2A3B4C";
- const string expected = "AABBBCCCC";
- Assert.Equal(expected, RunLengthEncoding.Decode(input));
+ Assert.Equal("XYZ", RunLengthEncoding.Encode("XYZ"));
}
[Fact(Skip = "Remove to run test")]
- public void Encode_with_single_values()
+ public void Encode_string_with_no_single_characters()
{
- const string input = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB";
- const string expected = "12WB12W3B24WB";
- Assert.Equal(expected, RunLengthEncoding.Encode(input));
+ Assert.Equal("2A3B4C", RunLengthEncoding.Encode("AABBBCCCC"));
}
[Fact(Skip = "Remove to run test")]
- public void Decode_with_single_values()
+ public void Encode_single_characters_mixed_with_repeated_characters()
{
- const string input = "12WB12W3B24WB";
- const string expected = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB";
- Assert.Equal(expected, RunLengthEncoding.Decode(input));
+ Assert.Equal("12WB12W3B24WB", RunLengthEncoding.Encode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"));
}
[Fact(Skip = "Remove to run test")]
- public void Encode_and_then_decode()
+ public void Encode_multiple_whitespace_mixed_in_string()
{
- const string input = "zzz ZZ zZ";
- const string expected = "zzz ZZ zZ";
- Assert.Equal(expected, RunLengthEncoding.Decode(RunLengthEncoding.Encode(input)));
+ Assert.Equal("2 hs2q q2w2 ", RunLengthEncoding.Encode(" hsqq qww "));
}
[Fact(Skip = "Remove to run test")]
- public void Encode_unicode()
+ public void Encode_lowercase_characters()
{
- const string input = "⏰⚽⚽⚽⭐⭐⏰";
- const string expected = "⏰3⚽2⭐⏰";
- Assert.Equal(expected, RunLengthEncoding.Encode(input));
+ Assert.Equal("2a3b4c", RunLengthEncoding.Encode("aabbbcccc"));
}
[Fact(Skip = "Remove to run test")]
- public void Decode_unicode()
+ public void Decode_empty_string()
{
- const string input = "⏰3⚽2⭐⏰";
- const string expected = "⏰⚽⚽⚽⭐⭐⏰";
- Assert.Equal(expected, RunLengthEncoding.Decode(input));
+ Assert.Equal("", RunLengthEncoding.Decode(""));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Decode_single_characters_only()
+ {
+ Assert.Equal("XYZ", RunLengthEncoding.Decode("XYZ"));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Decode_string_with_no_single_characters()
+ {
+ Assert.Equal("AABBBCCCC", RunLengthEncoding.Decode("2A3B4C"));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Decode_single_characters_with_repeated_characters()
+ {
+ Assert.Equal("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB", RunLengthEncoding.Decode("12WB12W3B24WB"));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Decode_multiple_whitespace_mixed_in_string()
+ {
+ Assert.Equal(" hsqq qww ", RunLengthEncoding.Decode("2 hs2q q2w2 "));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Decode_lower_case_string()
+ {
+ Assert.Equal("aabbbcccc", RunLengthEncoding.Decode("2a3b4c"));
+ }
+
+ [Fact(Skip = "Remove to run test")]
+ public void Consistency_encode_followed_by_decode_gives_original_string()
+ {
+ Assert.Equal("zzz ZZ zZ", RunLengthEncoding.Decode(RunLengthEncoding.Encode("zzz ZZ zZ")));
}
}
\ No newline at end of file