public void InterningWorks() { Key keyFoo = new Key("foo"); Key keyBar = new Key("bar"); Key keyFoo2 = new Key(bytesFoo); Assert.Equal("foo", keyFoo2.ToString()); // Self Assert.True(keyFoo.Equals(keyFoo)); Assert.True(keyFoo.Equals((KeyRef)keyFoo)); Assert.True(keyFoo.Equals((object)keyFoo)); Assert.True(keyFoo.Equals(keyFoo.AsKeyRef())); // Similar Assert.True(keyFoo.Equals(keyFoo2)); Assert.True(keyFoo.Equals((object)keyFoo2)); Assert.True(keyFoo.Equals((KeyRef)keyFoo2)); Assert.True(keyFoo.Equals(keyFoo2.AsKeyRef())); // Different Assert.False(keyFoo.Equals(keyBar)); Assert.False(keyFoo.Equals((object)keyBar)); Assert.False(keyFoo.Equals((KeyRef)keyBar)); Assert.False(keyFoo.Equals(keyBar.AsKeyRef())); }