public void TestIntersectWithStraightLine() { List <double> result = test.Intersect(straightLine); List <double> answer = new List <double>(); answer.Add(-1); answer.Add(0); Assert.IsTrue(Enumerable.SequenceEqual(result, answer)); }
static void Main(string[] args) { Line straightLine = new StraightLine(); Line circle = new Circle(); Circle circle2 = new Circle(); // Calls "Line.Intersect(Line)", and correctly // prints "Circle intersecting a straight line.". Console.WriteLine(circle.Intersect(straightLine)); // Also calls "Line.Intersect(Line)", // since the argument's compile-time type is "Line". Console.WriteLine(circle2.Intersect(straightLine)); // Calls "Line.Intersect(Circle)", // since the argument's compile-time type is "Circle". // At runtime, the call will be resolved to // "StraightLine.Intersect(Circle)" via single dispatch. Console.WriteLine(straightLine.Intersect(circle2)); Console.ReadLine(); }