private static void ValidateStringCharacteristics(string expected, ConsoleString actual) { Assert.AreEqual(expected, string.Join("", actual.Select(c => c.Value))); Assert.AreEqual(0, actual.CompareTo(expected)); Assert.AreEqual(expected, actual.ToString()); Assert.AreEqual(expected.Length, actual.Length); var expectedEnumerator = expected.GetEnumerator(); foreach (var character in actual) { expectedEnumerator.MoveNext(); Assert.AreEqual(expectedEnumerator.Current+"", character.ToString()); Assert.AreEqual(expectedEnumerator.Current, character.Value); character.Write(); } Assert.IsFalse(expectedEnumerator.MoveNext()); }