From d18208440cb2354deb17a3ab3dc8fe8cce43b106 Mon Sep 17 00:00:00 2001 From: Luc Maisonobe Date: Mon, 15 Aug 2011 18:20:47 +0000 Subject: [PATCH] new tests git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1157933 13f79535-47bb-0310-9956-ffa450edef68 --- .../geometry/euclidean/threed/LineTest.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/test/java/org/apache/commons/math/geometry/euclidean/threed/LineTest.java b/src/test/java/org/apache/commons/math/geometry/euclidean/threed/LineTest.java index 3162045ba..294acfe9a 100644 --- a/src/test/java/org/apache/commons/math/geometry/euclidean/threed/LineTest.java +++ b/src/test/java/org/apache/commons/math/geometry/euclidean/threed/LineTest.java @@ -70,6 +70,61 @@ public class LineTest { Assert.assertEquals(0.0, l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -1, -1))), 1.0e-10); + Assert.assertEquals(0.0, + l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, 1, 0))), + 1.0e-10); + Assert.assertEquals(0.0, + l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(1, 0, 0))), + 1.0e-10); + Assert.assertEquals(FastMath.sqrt(8), + l.distance(new Line(new Vector3D(0, -4, 0), new Vector3D(1, 0, 0))), + 1.0e-10); + } + + @Test + public void testClosest() { + Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 1, 1)); + Assert.assertEquals(0.0, + l.closestPoint(new Line(new Vector3D(1, 0, 1), Vector3D.PLUS_K)).distance(new Vector3D(0, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.5, + l.closestPoint(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(0, -1, -1))).distance(new Vector3D(-0.5, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.0, + l.closestPoint(l).distance(new Vector3D(0, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.0, + l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -1, -1))).distance(new Vector3D(0, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.0, + l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(0, 1, 0))).distance(new Vector3D(0, -4, -4)), + 1.0e-10); + Assert.assertEquals(0.0, + l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(1, 0, 0))).distance(new Vector3D(0, -4, -4)), + 1.0e-10); + Assert.assertEquals(0.0, + l.closestPoint(new Line(new Vector3D(0, -4, 0), new Vector3D(1, 0, 0))).distance(new Vector3D(0, -2, -2)), + 1.0e-10); + } + + @Test + public void testIntersection() { + Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 1, 1)); + Assert.assertNull(l.intersection(new Line(new Vector3D(1, 0, 1), Vector3D.PLUS_K))); + Assert.assertNull(l.intersection(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(0, -1, -1)))); + Assert.assertEquals(0.0, + l.intersection(l).distance(new Vector3D(0, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.0, + l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -1, -1))).distance(new Vector3D(0, 0, 0)), + 1.0e-10); + Assert.assertEquals(0.0, + l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(0, 1, 0))).distance(new Vector3D(0, -4, -4)), + 1.0e-10); + Assert.assertEquals(0.0, + l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(1, 0, 0))).distance(new Vector3D(0, -4, -4)), + 1.0e-10); + Assert.assertNull(l.intersection(new Line(new Vector3D(0, -4, 0), new Vector3D(1, 0, 0)))); } }