public void TestInvalidShapesIntersects() { try { Line line1 = new Line(new Vector2(0, 0), new Vector2(0, 0)); Line line2 = new Line(new Vector2(0, 0), new Vector2(100, 100)); var res = line1 & line2; Assert.Fail(); } catch (InvalidShapeException) { } try { Circle circle = new Circle(new Vector2(42, 42), new Vector2(42, 42)); Line line = new Line(new Vector2(0, 0), new Vector2(100, 100)); var res = circle & line; Assert.Fail(); } catch (InvalidShapeException) { } try { Line line1 = new Line(new Vector2(0, 0), new Vector2(10, 10)); Line line2 = new Line(new Vector2(0, 0), new Vector2(100, 100)); var res = line1 & line2; Assert.Fail(); } catch (SameShapeException) { } try { Line line1 = new Line(new Vector2(3, 7), new Vector2(7, 1)); Line line2 = new Line(new Vector2(4, 5.5), new Vector2(6, 2.5)); var res = line1 & line2; Assert.Fail(); } catch (SameShapeException) { } }
public void TestCirclentersects() { { Circle cir1 = new Circle(new Vector2(0, 0), new Vector2(2.5, 0)); Circle cir2 = new Circle(new Vector2(3.5, 0), new Vector2(1, 0)); // CollectionAssert.AreEquivalent 를 써야 할텐데 comparer을 못써서 일단은 ㅇㅅㅇ;; CollectionAssert.AreEqual(cir1 & cir2, new[] { new Vector2(1.75, 1.79), new Vector2(1.75, -1.79) }, pointComparer); } { Circle cir1 = new Circle(new Vector2(1, 2), new Vector2(3, 4)); Circle cir2 = new Circle(new Vector2(3.5, 1.5), new Vector2(4.5, 2.5)); CollectionAssert.AreEqual(cir1 & cir2, new[] { new Vector2(3.68, 2.9), new Vector2(3.13, 0.14) }, pointComparer); } { Circle cir1 = new Circle(new Vector2(0, 0), new Vector2(2, 1.5)); Circle cir2 = new Circle(new Vector2(0, 1.5), new Vector2(0, 2.5)); CollectionAssert.AreEqual(cir1 & cir2, new[] { new Vector2(0, 2.5) }, pointComparer); } { Circle cir1 = new Circle(new Vector2(2, 4), new Vector2(4, 2)); Circle cir2 = new Circle(new Vector2(3, 2.5), new Vector2(4, 2.5)); CollectionAssert.AreEqual(cir1 & cir2, new Vector2[] { }, pointComparer); } { Circle cir1 = new Circle(new Vector2(2, 4), new Vector2(4, 2)); Circle cir2 = new Circle(new Vector2(6, 4), new Vector2(6.5, 4)); CollectionAssert.AreEqual(cir1 & cir2, new Vector2[] { }, pointComparer); } { Circle cir1 = new Circle(new Vector2(2, 4), new Vector2(4, 2)); Circle cir2 = new Circle(new Vector2(3, 2.5), new Vector2(3.5, 3.5)); CollectionAssert.AreEqual(cir1 & cir2, new [] { new Vector2(4, 2), new Vector2(3.08, 1.38) }, pointComparer); } }