public void SerialisationTest() { var m1 = Metres.New(10); var str = JsonConvert.SerializeObject(m1); var m2 = JsonConvert.DeserializeObject <Metres>(str); Assert.True(m2 == m1); }
public void ArithmeticTest() { var m1 = new Metres(8); var m2 = new Metres(2); var r1 = m1 + m2; var r2 = m1 - m2; var r3 = m1 / m2; var r4 = m1 * m2; Assert.True(r1 == Metres.New(10)); Assert.True(r2 == Metres.New(6)); Assert.True(r3 == Metres.New(4)); Assert.True(r4 == Metres.New(16)); var h1 = new Hours(1); // Mixing types - won't now compile! success! // Assert.Throws<Exception>(() => m1 + h1); // Assert.Throws<Exception>(() => m1 - h1); // Assert.Throws<Exception>(() => m1 / h1); // Assert.Throws<Exception>(() => m1 * h1); }
public void LinqTest() { var m1 = new Metres(1); var m2 = new Metres(2); var ctor = Metres.New; var test = ctor(1); Metres res = from x in m1 from y in m2 select x + y; Assert.True(res == Metres.New(3)); var h1 = new Hours(1); // Mixing types - won't now compile! success! // Assert.Throws<Exception>(() => // from x in m1 // from y in h1 // select x + y // ); }