public void TestConsoleStringEdgeCases() { ConsoleString str = ConsoleString.Empty; for (int i = 0; i < 99; i++) { str.Append(""); } Assert.AreEqual(0, str.Length); Assert.AreEqual(string.Empty, str.ToString()); Assert.AreEqual(ConsoleString.Empty, str); ConsoleString noSegments = new ConsoleString(); noSegments.AppendUsingCurrentFormat("Adam"); ValidateStringCharacteristics("Adam", noSegments); ConsoleString nullString = null; Assert.IsTrue(nullString == null); nullString = nullString + new ConsoleString("Adam"); Assert.AreEqual(nullString, new ConsoleString("Adam")); nullString = null; Assert.IsTrue(nullString == null); Assert.IsFalse(nullString != null); nullString = nullString + "Adam"; Assert.AreEqual(nullString, new ConsoleString("Adam")); Assert.IsTrue(nullString != null); Assert.IsFalse(new ConsoleCharacter('a').Equals(null)); Assert.IsFalse(new ConsoleCharacter('a').Equals(0)); new ConsoleCharacter('a').GetHashCode(); new ConsoleString("Adam").GetHashCode(); Assert.IsTrue(new ConsoleString("Adam").Equals("Adam")); Assert.IsTrue(new ConsoleCharacter('A').Equals('A')); Assert.IsTrue(new ConsoleCharacter('A') == 'A'); Assert.IsTrue(new ConsoleCharacter('A') != 'B'); Assert.IsFalse(new ConsoleCharacter('A') == null); Assert.IsTrue(new ConsoleCharacter('A') != null); Assert.IsTrue(new ConsoleCharacter('A') == new ConsoleCharacter('A')); Assert.IsTrue(new ConsoleCharacter('A') != new ConsoleCharacter('B')); Assert.IsTrue(new ConsoleString("A") == new ConsoleString("A")); Assert.IsTrue(new ConsoleString("A") != new ConsoleString("B")); Assert.IsFalse(null == new ConsoleString("A")); Assert.IsTrue(null != new ConsoleString("B")); Assert.IsFalse(new ConsoleString("A") == null); Assert.IsTrue(new ConsoleString("A") != null); Assert.AreEqual(new ConsoleString("A"), null + new ConsoleString("A")); ConsoleString nulla = null; ConsoleString nullb = null; string nullS = null; Assert.AreEqual(null, nulla + nullb); Assert.AreEqual(null, nulla + nullS); }