using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnitTestSharp; namespace Glass.UnitTests { public class PointTests : TestFixture { public class Ctor : TestFixture { public void Basic() { var point = new Point(3, 4); CheckEqual(3, point.X); CheckEqual(4, point.Y); } } public class EqualsTests : TestFixture { public void Equal() { var a = new Point(3, 4); var b = new Point(3, 4); Check(a == b); Check(b == a); CheckFalse(a != b); CheckFalse(b != a); Check(a.Equals(b)); Check(b.Equals(a)); } public void DifferentX() { var a = new Point(3, 4); var b = new Point(5, 4); CheckFalse(a == b); CheckFalse(b == a); Check(a != b); Check(b != a); CheckFalse(a.Equals(b)); CheckFalse(b.Equals(a)); } public void DifferentY() { var a = new Point(3, 4); var b = new Point(3, 5); CheckFalse(a == b); CheckFalse(b == a); Check(a != b); Check(b != a); CheckFalse(a.Equals(b)); CheckFalse(b.Equals(a)); } public void BothDifferent() { var a = new Point(3, 4); var b = new Point(6, 5); CheckFalse(a == b); CheckFalse(b == a); Check(a != b); Check(b != a); CheckFalse(a.Equals(b)); CheckFalse(b.Equals(a)); } } public class HashCode : TestFixture { public void SameValueProducesSameHashCode() { var point1 = new Point(3, 4); var point2 = new Point(3, 4); CheckEqual(point1.GetHashCode(), point2.GetHashCode()); } public void DifferentValueProducesDifferentHashCode() { var point1 = new Point(3, 4); var point2 = new Point(3, 5); CheckNotEqual(point1.GetHashCode(), point2.GetHashCode()); } } public class ImplicitConversionFromSystemDrawingPoint : TestFixture { public void ToPoint() { System.Drawing.Point sysPoint = new Glass.Point(3, 4); CheckEqual(3, sysPoint.X); CheckEqual(4, sysPoint.Y); } public void FromPoint() { Glass.Point glassPoint = new System.Drawing.Point(3, 4); CheckEqual(3, glassPoint.X); CheckEqual(4, glassPoint.Y); } } } }