public void MutRef_Comparisons() { var first = new MutRef <float>(); var second = new MutRef <float>(); // TODO(bengreenier): should ensure that two refs pointing at different Boxes are not equal // mut refs are equal if the contents are the same Assert.AreEqual(first, second); // and the same instance is equal, of course Assert.AreEqual(first, first); // and a value comparison will check against the mut ref contents Assert.True(first.ValueEquals(0)); // even if it's another mut ref Assert.True(first.ValueEquals(second)); }
public void MutRef_ReadWrite() { var rwFloat = new MutRef <float>(); // default reads work Assert.AreEqual(0f, rwFloat.Value); Assert.AreEqual(0f, rwFloat.Read()); rwFloat.Value = 10f; // write works via prop Assert.AreEqual(10f, rwFloat.Value); Assert.AreEqual(10f, rwFloat.Read()); rwFloat.Write(20f); // write works via method Assert.AreEqual(20f, rwFloat.Value); Assert.AreEqual(20f, rwFloat.Read()); }