public void TestEquals() { var a = new LString("A"); var b = new LString("B"); Assert.IsTrue(LString.Empty.Equals(LString.Empty)); Assert.IsTrue(a == a); Assert.IsFalse(a == b); Assert.IsFalse(a != a); Assert.IsTrue(a != b); var exA = a.Expose(); var exB = b.Expose(); byte[] intA = exA.InternalData; byte[] intB = exB.InternalData; Assert.IsTrue(StrInternals.InternalEquals(intA, intA)); Assert.IsTrue(StrInternals.InternalEquals(intB, intB)); Assert.IsFalse(StrInternals.InternalEquals(intA, intB)); var a2 = new LString("A"); Assert.IsTrue(LString.Equals(a, a2)); Assert.IsTrue(a == a2); Assert.AreEqual(a, a2); }