public void TestEdgeIntersection() { Edge edge; Point p1, p2, intersection; bool result; object[,] tests = { {4.0, 4.0, 6.0, 2.0, false, 0.0, 0.0}, {0.0, 2.0, 6.0, -1.0, true, 2.0, 1.0}, {0.0, 2.0, 6.0, 2.0, true, 4.0, 2.0}, {6.0, -1.0, 2.0, -3.0, false, 0.0, 0.0} }; edge = new Edge(0, 0, 4, 2); for (int i = 0; i < tests.GetLength(0); i++) { p1 = new Point((double)tests[i, 0], (double)tests[i, 1]); p2 = new Point((double)tests[i, 2], (double)tests[i, 3]); result = edge.ComputeIntersection(new Edge(p1, p2), out intersection); Assert.Equals(result, tests[i, 4]); if (result) { p1 = new Point((double)tests[i, 5], (double)tests[i, 6]); Assert.Equals(p1.X, intersection.X); Assert.Equals(p1.Y, intersection.Y); } } }