You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2014/01/03 19:06:20 UTC

svn commit: r1555174 [2/2] - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math3/geometry/euclidean/oned/ main/java/org/apache/commons/math3/geometry/euclidean/threed/ main/java/org/apache/commons/math3/geometry/euclidean/twod/ main/j...

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/oned/IntervalsSetTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/oned/IntervalsSetTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/oned/IntervalsSetTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/oned/IntervalsSetTest.java Fri Jan  3 18:06:20 2014
@@ -18,6 +18,7 @@ package org.apache.commons.math3.geometr
 
 import java.util.List;
 
+import org.apache.commons.math3.geometry.Point;
 import org.apache.commons.math3.geometry.euclidean.oned.Interval;
 import org.apache.commons.math3.geometry.euclidean.oned.IntervalsSet;
 import org.apache.commons.math3.geometry.euclidean.oned.Vector1D;
@@ -32,26 +33,26 @@ public class IntervalsSetTest {
 
     @Test
     public void testInterval() {
-        IntervalsSet set = new IntervalsSet(2.3, 5.7);
+        IntervalsSet set = new IntervalsSet(2.3, 5.7, 1.0e-10);
         Assert.assertEquals(3.4, set.getSize(), 1.0e-10);
         Assert.assertEquals(4.0, ((Vector1D) set.getBarycenter()).getX(), 1.0e-10);
-        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(2.3)));
-        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(5.7)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(1.2)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(8.7)));
-        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint(new Vector1D(3.0)));
+        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint((Point<Euclidean1D>) new Vector1D(2.3)));
+        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint((Point<Euclidean1D>) new Vector1D(5.7)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(1.2)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(8.7)));
+        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint((Point<Euclidean1D>) new Vector1D(3.0)));
         Assert.assertEquals(2.3, set.getInf(), 1.0e-10);
         Assert.assertEquals(5.7, set.getSup(), 1.0e-10);
     }
 
     @Test
     public void testInfinite() {
-        IntervalsSet set = new IntervalsSet(9.0, Double.POSITIVE_INFINITY);
-        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(9.0)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(8.4)));
+        IntervalsSet set = new IntervalsSet(9.0, Double.POSITIVE_INFINITY, 1.0e-10);
+        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint((Point<Euclidean1D>) new Vector1D(9.0)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(8.4)));
         for (double e = 1.0; e <= 6.0; e += 1.0) {
             Assert.assertEquals(Region.Location.INSIDE,
-                                set.checkPoint(new Vector1D(FastMath.pow(10.0, e))));
+                                set.checkPoint((Point<Euclidean1D>) new Vector1D(FastMath.pow(10.0, e))));
         }
         Assert.assertTrue(Double.isInfinite(set.getSize()));
         Assert.assertEquals(9.0, set.getInf(), 1.0e-10);
@@ -67,21 +68,21 @@ public class IntervalsSetTest {
     public void testMultiple() {
         RegionFactory<Euclidean1D> factory = new RegionFactory<Euclidean1D>();
         IntervalsSet set = (IntervalsSet)
-        factory.intersection(factory.union(factory.difference(new IntervalsSet(1.0, 6.0),
-                                                              new IntervalsSet(3.0, 5.0)),
-                                                              new IntervalsSet(9.0, Double.POSITIVE_INFINITY)),
-                                                              new IntervalsSet(Double.NEGATIVE_INFINITY, 11.0));
+        factory.intersection(factory.union(factory.difference(new IntervalsSet(1.0, 6.0, 1.0e-10),
+                                                              new IntervalsSet(3.0, 5.0, 1.0e-10)),
+                                                              new IntervalsSet(9.0, Double.POSITIVE_INFINITY, 1.0e-10)),
+                                                              new IntervalsSet(Double.NEGATIVE_INFINITY, 11.0, 1.0e-10));
         Assert.assertEquals(5.0, set.getSize(), 1.0e-10);
         Assert.assertEquals(5.9, ((Vector1D) set.getBarycenter()).getX(), 1.0e-10);
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(0.0)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(4.0)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(8.0)));
-        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint(new Vector1D(12.0)));
-        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint(new Vector1D(1.2)));
-        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint(new Vector1D(5.9)));
-        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint(new Vector1D(9.01)));
-        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(5.0)));
-        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(11.0)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(0.0)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(4.0)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(8.0)));
+        Assert.assertEquals(Region.Location.OUTSIDE,  set.checkPoint((Point<Euclidean1D>) new Vector1D(12.0)));
+        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint((Point<Euclidean1D>) new Vector1D(1.2)));
+        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint((Point<Euclidean1D>) new Vector1D(5.9)));
+        Assert.assertEquals(Region.Location.INSIDE,   set.checkPoint((Point<Euclidean1D>) new Vector1D(9.01)));
+        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint((Point<Euclidean1D>) new Vector1D(5.0)));
+        Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint((Point<Euclidean1D>) new Vector1D(11.0)));
         Assert.assertEquals( 1.0, set.getInf(), 1.0e-10);
         Assert.assertEquals(11.0, set.getSup(), 1.0e-10);
 
@@ -98,7 +99,7 @@ public class IntervalsSetTest {
 
     @Test
     public void testSinglePoint() {
-        IntervalsSet set = new IntervalsSet(1.0, 1.0);
+        IntervalsSet set = new IntervalsSet(1.0, 1.0, 1.0e-10);
         Assert.assertEquals(0.0, set.getSize(), Precision.SAFE_MIN);
         Assert.assertEquals(1.0, ((Vector1D) set.getBarycenter()).getX(), Precision.EPSILON);
     }

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/LineTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/LineTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/LineTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/LineTest.java Fri Jan  3 18:06:20 2014
@@ -29,7 +29,7 @@ public class LineTest {
     @Test
     public void testContains() throws MathIllegalArgumentException, MathArithmeticException {
         Vector3D p1 = new Vector3D(0, 0, 1);
-        Line l = new Line(p1, new Vector3D(0, 0, 2));
+        Line l = new Line(p1, new Vector3D(0, 0, 2), 1.0e-10);
         Assert.assertTrue(l.contains(p1));
         Assert.assertTrue(l.contains(new Vector3D(1.0, p1, 0.3, l.getDirection())));
         Vector3D u = l.getDirection().orthogonal();
@@ -44,89 +44,89 @@ public class LineTest {
     public void testSimilar() throws MathIllegalArgumentException, MathArithmeticException {
         Vector3D p1  = new Vector3D (1.2, 3.4, -5.8);
         Vector3D p2  = new Vector3D (3.4, -5.8, 1.2);
-        Line     lA  = new Line(p1, p2);
-        Line     lB  = new Line(p2, p1);
+        Line     lA  = new Line(p1, p2, 1.0e-10);
+        Line     lB  = new Line(p2, p1, 1.0e-10);
         Assert.assertTrue(lA.isSimilarTo(lB));
-        Assert.assertTrue(! lA.isSimilarTo(new Line(p1, p1.add(lA.getDirection().orthogonal()))));
+        Assert.assertTrue(! lA.isSimilarTo(new Line(p1, p1.add(lA.getDirection().orthogonal()), 1.0e-10)));
     }
 
     @Test
     public void testPointDistance() throws MathIllegalArgumentException {
-        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2));
+        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2), 1.0e-10);
         Assert.assertEquals(FastMath.sqrt(3.0 / 2.0), l.distance(new Vector3D(1, 0, 1)), 1.0e-10);
         Assert.assertEquals(0, l.distance(new Vector3D(0, -4, -4)), 1.0e-10);
     }
 
     @Test
     public void testLineDistance() throws MathIllegalArgumentException {
-        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2));
+        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2), 1.0e-10);
         Assert.assertEquals(1.0,
-                            l.distance(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2))),
+                            l.distance(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2), 1.0e-10)),
                             1.0e-10);
         Assert.assertEquals(0.5,
-                            l.distance(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(-0.5, -1, -1))),
+                            l.distance(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(-0.5, -1, -1), 1.0e-10)),
                             1.0e-10);
         Assert.assertEquals(0.0,
                             l.distance(l),
                             1.0e-10);
         Assert.assertEquals(0.0,
-                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -5, -5))),
+                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -5, -5), 1.0e-10)),
                             1.0e-10);
         Assert.assertEquals(0.0,
-                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -3, -4))),
+                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -3, -4), 1.0e-10)),
                             1.0e-10);
         Assert.assertEquals(0.0,
-                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(1, -4, -4))),
+                            l.distance(new Line(new Vector3D(0, -4, -4), new Vector3D(1, -4, -4), 1.0e-10)),
                             1.0e-10);
         Assert.assertEquals(FastMath.sqrt(8),
-                            l.distance(new Line(new Vector3D(0, -4, 0), new Vector3D(1, -4, 0))),
+                            l.distance(new Line(new Vector3D(0, -4, 0), new Vector3D(1, -4, 0), 1.0e-10)),
                             1.0e-10);
     }
 
     @Test
     public void testClosest() throws MathIllegalArgumentException {
-        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2));
+        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2), 1.0e-10);
         Assert.assertEquals(0.0,
-                            l.closestPoint(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2))).distance(new Vector3D(0, 0, 0)),
+                            l.closestPoint(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2), 1.0e-10)).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.5, -1, -1))).distance(new Vector3D(-0.5, 0, 0)),
+                            l.closestPoint(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(-0.5, -1, -1), 1.0e-10)).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, -5, -5))).distance(new Vector3D(0, 0, 0)),
+                            l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -5, -5), 1.0e-10)).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, -3, -4))).distance(new Vector3D(0, -4, -4)),
+                            l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -3, -4), 1.0e-10)).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, -4, -4))).distance(new Vector3D(0, -4, -4)),
+                            l.closestPoint(new Line(new Vector3D(0, -4, -4), new Vector3D(1, -4, -4), 1.0e-10)).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, -4, 0))).distance(new Vector3D(0, -2, -2)),
+                            l.closestPoint(new Line(new Vector3D(0, -4, 0), new Vector3D(1, -4, 0), 1.0e-10)).distance(new Vector3D(0, -2, -2)),
                             1.0e-10);
     }
 
     @Test
     public void testIntersection() throws MathIllegalArgumentException {
-        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2));
-        Assert.assertNull(l.intersection(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2))));
-        Assert.assertNull(l.intersection(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(-0.5, -1, -1))));
+        Line l = new Line(new Vector3D(0, 1, 1), new Vector3D(0, 2, 2), 1.0e-10);
+        Assert.assertNull(l.intersection(new Line(new Vector3D(1, 0, 1), new Vector3D(1, 0, 2), 1.0e-10)));
+        Assert.assertNull(l.intersection(new Line(new Vector3D(-0.5, 0, 0), new Vector3D(-0.5, -1, -1), 1.0e-10)));
         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, -5, -5))).distance(new Vector3D(0, 0, 0)),
+                            l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -5, -5), 1.0e-10)).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, -3, -4))).distance(new Vector3D(0, -4, -4)),
+                            l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(0, -3, -4), 1.0e-10)).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, -4, -4))).distance(new Vector3D(0, -4, -4)),
+                            l.intersection(new Line(new Vector3D(0, -4, -4), new Vector3D(1, -4, -4), 1.0e-10)).distance(new Vector3D(0, -4, -4)),
                             1.0e-10);
-        Assert.assertNull(l.intersection(new Line(new Vector3D(0, -4, 0), new Vector3D(1, -4, 0))));
+        Assert.assertNull(l.intersection(new Line(new Vector3D(0, -4, 0), new Vector3D(1, -4, 0), 1.0e-10)));
     }
 
     @Test
@@ -134,7 +134,8 @@ public class LineTest {
         
         // setup
         Line line = new Line(new Vector3D(1653345.6696423641, 6170370.041579291, 90000),
-                             new Vector3D(1650757.5050732433, 6160710.879908984, 0.9));
+                             new Vector3D(1650757.5050732433, 6160710.879908984, 0.9),
+                             1.0e-10);
         Vector3D expected = line.getDirection().negate();
 
         // action

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PlaneTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PlaneTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PlaneTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PlaneTest.java Fri Jan  3 18:06:20 2014
@@ -29,7 +29,7 @@ public class PlaneTest {
 
     @Test
     public void testContains() throws MathArithmeticException {
-        Plane p = new Plane(new Vector3D(0, 0, 1), new Vector3D(0, 0, 1));
+        Plane p = new Plane(new Vector3D(0, 0, 1), new Vector3D(0, 0, 1), 1.0e-10);
         Assert.assertTrue(p.contains(new Vector3D(0, 0, 1)));
         Assert.assertTrue(p.contains(new Vector3D(17, -32, 1)));
         Assert.assertTrue(! p.contains(new Vector3D(17, -32, 1.001)));
@@ -38,7 +38,7 @@ public class PlaneTest {
     @Test
     public void testOffset() throws MathArithmeticException {
         Vector3D p1 = new Vector3D(1, 1, 1);
-        Plane p = new Plane(p1, new Vector3D(0.2, 0, 0));
+        Plane p = new Plane(p1, new Vector3D(0.2, 0, 0), 1.0e-10);
         Assert.assertEquals(-5.0, p.getOffset(new Vector3D(-4, 0, 0)), 1.0e-10);
         Assert.assertEquals(+5.0, p.getOffset(new Vector3D(6, 10, -12)), 1.0e-10);
         Assert.assertEquals(0.3,
@@ -51,7 +51,7 @@ public class PlaneTest {
 
     @Test
     public void testPoint() throws MathArithmeticException {
-        Plane p = new Plane(new Vector3D(2, -3, 1), new Vector3D(1, 4, 9));
+        Plane p = new Plane(new Vector3D(2, -3, 1), new Vector3D(1, 4, 9), 1.0e-10);
         Assert.assertTrue(p.contains(p.getOrigin()));
     }
 
@@ -60,7 +60,7 @@ public class PlaneTest {
         Vector3D p1 = new Vector3D(1.2, 3.4, -5.8);
         Vector3D p2 = new Vector3D(3.4, -5.8, 1.2);
         Vector3D p3 = new Vector3D(-2.0, 4.3, 0.7);
-        Plane    p  = new Plane(p1, p2, p3);
+        Plane    p  = new Plane(p1, p2, p3, 1.0e-10);
         Assert.assertTrue(p.contains(p1));
         Assert.assertTrue(p.contains(p2));
         Assert.assertTrue(p.contains(p3));
@@ -71,7 +71,7 @@ public class PlaneTest {
         Vector3D p1 = new Vector3D(1.2, 3.4, -5.8);
         Vector3D p2 = new Vector3D(3.4, -5.8, 1.2);
         Vector3D p3 = new Vector3D(-2.0, 4.3, 0.7);
-        Plane    p  = new Plane(p1, p2, p3);
+        Plane    p  = new Plane(p1, p2, p3, 1.0e-10);
         Vector3D oldNormal = p.getNormal();
 
         p = p.rotate(p2, new Rotation(p2.subtract(p1), 1.7));
@@ -96,7 +96,7 @@ public class PlaneTest {
         Vector3D p1 = new Vector3D(1.2, 3.4, -5.8);
         Vector3D p2 = new Vector3D(3.4, -5.8, 1.2);
         Vector3D p3 = new Vector3D(-2.0, 4.3, 0.7);
-        Plane    p  = new Plane(p1, p2, p3);
+        Plane    p  = new Plane(p1, p2, p3, 1.0e-10);
 
         p = p.translate(new Vector3D(2.0, p.getU(), -1.5, p.getV()));
         Assert.assertTrue(p.contains(p1));
@@ -117,21 +117,22 @@ public class PlaneTest {
 
     @Test
     public void testIntersection() throws MathArithmeticException, MathIllegalArgumentException {
-        Plane p = new Plane(new Vector3D(1, 2, 3), new Vector3D(-4, 1, -5));
-        Line  l = new Line(new Vector3D(0.2, -3.5, 0.7), new Vector3D(1.2, -2.5, -0.3));
+        Plane p = new Plane(new Vector3D(1, 2, 3), new Vector3D(-4, 1, -5), 1.0e-10);
+        Line  l = new Line(new Vector3D(0.2, -3.5, 0.7), new Vector3D(1.2, -2.5, -0.3), 1.0e-10);
         Vector3D point = p.intersection(l);
         Assert.assertTrue(p.contains(point));
         Assert.assertTrue(l.contains(point));
         Assert.assertNull(p.intersection(new Line(new Vector3D(10, 10, 10),
-                                                  new Vector3D(10, 10, 10).add(p.getNormal().orthogonal()))));
+                                                  new Vector3D(10, 10, 10).add(p.getNormal().orthogonal()),
+                                                  1.0e-10)));
     }
 
     @Test
     public void testIntersection2() throws MathArithmeticException {
         Vector3D p1  = new Vector3D (1.2, 3.4, -5.8);
         Vector3D p2  = new Vector3D (3.4, -5.8, 1.2);
-        Plane    pA  = new Plane(p1, p2, new Vector3D (-2.0, 4.3, 0.7));
-        Plane    pB  = new Plane(p1, new Vector3D (11.4, -3.8, 5.1), p2);
+        Plane    pA  = new Plane(p1, p2, new Vector3D (-2.0, 4.3, 0.7), 1.0e-10);
+        Plane    pB  = new Plane(p1, new Vector3D (11.4, -3.8, 5.1), p2, 1.0e-10);
         Line     l   = pA.intersection(pB);
         Assert.assertTrue(l.contains(p1));
         Assert.assertTrue(l.contains(p2));
@@ -141,9 +142,9 @@ public class PlaneTest {
     @Test
     public void testIntersection3() throws MathArithmeticException {
         Vector3D reference = new Vector3D (1.2, 3.4, -5.8);
-        Plane p1 = new Plane(reference, new Vector3D(1, 3, 3));
-        Plane p2 = new Plane(reference, new Vector3D(-2, 4, 0));
-        Plane p3 = new Plane(reference, new Vector3D(7, 0, -4));
+        Plane p1 = new Plane(reference, new Vector3D(1, 3, 3), 1.0e-10);
+        Plane p2 = new Plane(reference, new Vector3D(-2, 4, 0), 1.0e-10);
+        Plane p3 = new Plane(reference, new Vector3D(7, 0, -4), 1.0e-10);
         Vector3D p = Plane.intersection(p1, p2, p3);
         Assert.assertEquals(reference.getX(), p.getX(), 1.0e-10);
         Assert.assertEquals(reference.getY(), p.getY(), 1.0e-10);
@@ -155,15 +156,16 @@ public class PlaneTest {
         Vector3D p1  = new Vector3D (1.2, 3.4, -5.8);
         Vector3D p2  = new Vector3D (3.4, -5.8, 1.2);
         Vector3D p3  = new Vector3D (-2.0, 4.3, 0.7);
-        Plane    pA  = new Plane(p1, p2, p3);
-        Plane    pB  = new Plane(p1, new Vector3D (11.4, -3.8, 5.1), p2);
+        Plane    pA  = new Plane(p1, p2, p3, 1.0e-10);
+        Plane    pB  = new Plane(p1, new Vector3D (11.4, -3.8, 5.1), p2, 1.0e-10);
         Assert.assertTrue(! pA.isSimilarTo(pB));
         Assert.assertTrue(pA.isSimilarTo(pA));
-        Assert.assertTrue(pA.isSimilarTo(new Plane(p1, p3, p2)));
+        Assert.assertTrue(pA.isSimilarTo(new Plane(p1, p3, p2, 1.0e-10)));
         Vector3D shift = new Vector3D(0.3, pA.getNormal());
         Assert.assertTrue(! pA.isSimilarTo(new Plane(p1.add(shift),
                                                      p3.add(shift),
-                                                     p2.add(shift))));
+                                                     p2.add(shift),
+                                                     1.0e-10)));
     }
 
 }

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PolyhedronsSetTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PolyhedronsSetTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PolyhedronsSetTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/PolyhedronsSetTest.java Fri Jan  3 18:06:20 2014
@@ -39,7 +39,7 @@ public class PolyhedronsSetTest {
 
     @Test
     public void testBox() {
-        PolyhedronsSet tree = new PolyhedronsSet(0, 1, 0, 1, 0, 1);
+        PolyhedronsSet tree = new PolyhedronsSet(0, 1, 0, 1, 0, 1, 1.0e-10);
         Assert.assertEquals(1.0, tree.getSize(), 1.0e-10);
         Assert.assertEquals(6.0, tree.getBoundarySize(), 1.0e-10);
         Vector3D barycenter = (Vector3D) tree.getBarycenter();
@@ -85,10 +85,10 @@ public class PolyhedronsSetTest {
         @SuppressWarnings("unchecked")
         PolyhedronsSet tree =
             (PolyhedronsSet) new RegionFactory<Euclidean3D>().buildConvex(
-                new Plane(vertex3, vertex2, vertex1),
-                new Plane(vertex2, vertex3, vertex4),
-                new Plane(vertex4, vertex3, vertex1),
-                new Plane(vertex1, vertex2, vertex4));
+                new Plane(vertex3, vertex2, vertex1, 1.0e-10),
+                new Plane(vertex2, vertex3, vertex4, 1.0e-10),
+                new Plane(vertex4, vertex3, vertex1, 1.0e-10),
+                new Plane(vertex1, vertex2, vertex4, 1.0e-10));
         Assert.assertEquals(1.0 / 3.0, tree.getSize(), 1.0e-10);
         Assert.assertEquals(2.0 * FastMath.sqrt(3.0), tree.getBoundarySize(), 1.0e-10);
         Vector3D barycenter = (Vector3D) tree.getBarycenter();
@@ -120,10 +120,10 @@ public class PolyhedronsSetTest {
         @SuppressWarnings("unchecked")
         PolyhedronsSet tree =
             (PolyhedronsSet) new RegionFactory<Euclidean3D>().buildConvex(
-                new Plane(vertex3, vertex2, vertex1),
-                new Plane(vertex2, vertex3, vertex4),
-                new Plane(vertex4, vertex3, vertex1),
-                new Plane(vertex1, vertex2, vertex4));
+                new Plane(vertex3, vertex2, vertex1, 1.0e-10),
+                new Plane(vertex2, vertex3, vertex4, 1.0e-10),
+                new Plane(vertex4, vertex3, vertex1, 1.0e-10),
+                new Plane(vertex1, vertex2, vertex4, 1.0e-10));
         Vector3D barycenter = (Vector3D) tree.getBarycenter();
         Vector3D s = new Vector3D(10.2, 4.3, -6.7);
         Vector3D c = new Vector3D(-0.2, 2.1, -3.2);
@@ -201,7 +201,7 @@ public class PolyhedronsSetTest {
         double w = 0.1;
         double l = 1.0;
         PolyhedronsSet tree =
-            new PolyhedronsSet(x - l, x + l, y - w, y + w, z - w, z + w);
+            new PolyhedronsSet(x - l, x + l, y - w, y + w, z - w, z + w, 1.0e-10);
         Vector3D barycenter = (Vector3D) tree.getBarycenter();
         Assert.assertEquals(x, barycenter.getX(), 1.0e-10);
         Assert.assertEquals(y, barycenter.getY(), 1.0e-10);
@@ -219,11 +219,11 @@ public class PolyhedronsSetTest {
         double w = 0.1;
         double l = 1.0;
         PolyhedronsSet xBeam =
-            new PolyhedronsSet(x - l, x + l, y - w, y + w, z - w, z + w);
+            new PolyhedronsSet(x - l, x + l, y - w, y + w, z - w, z + w, 1.0e-10);
         PolyhedronsSet yBeam =
-            new PolyhedronsSet(x - w, x + w, y - l, y + l, z - w, z + w);
+            new PolyhedronsSet(x - w, x + w, y - l, y + l, z - w, z + w, 1.0e-10);
         PolyhedronsSet zBeam =
-            new PolyhedronsSet(x - w, x + w, y - w, y + w, z - l, z + l);
+            new PolyhedronsSet(x - w, x + w, y - w, y + w, z - l, z + l, 1.0e-10);
         RegionFactory<Euclidean3D> factory = new RegionFactory<Euclidean3D>();
         PolyhedronsSet tree = (PolyhedronsSet) factory.union(xBeam, factory.union(yBeam, zBeam));
         Vector3D barycenter = (Vector3D) tree.getBarycenter();
@@ -263,7 +263,7 @@ public class PolyhedronsSetTest {
             Vector3D v_2 = new Vector3D(coords[idxB], coords[idxB + 1], coords[idxB + 2]);
             Vector3D v_3 = new Vector3D(coords[idxC], coords[idxC + 1], coords[idxC + 2]);
             Vector3D[] vertices = {v_1, v_2, v_3};
-            Plane polyPlane = new Plane(v_1, v_2, v_3);
+            Plane polyPlane = new Plane(v_1, v_2, v_3, 1.0e-10);
             ArrayList<SubHyperplane<Euclidean2D>> lines = new ArrayList<SubHyperplane<Euclidean2D>>();
 
             Vector2D[] projPts = new Vector2D[vertices.length];
@@ -273,14 +273,14 @@ public class PolyhedronsSetTest {
 
             SubLine lineInPlane = null;
             for (int ptIdx = 0; ptIdx < projPts.length; ptIdx++) {
-                lineInPlane = new SubLine(projPts[ptIdx], projPts[(ptIdx + 1) % projPts.length]);
+                lineInPlane = new SubLine(projPts[ptIdx], projPts[(ptIdx + 1) % projPts.length], 1.0e-10);
                 lines.add(lineInPlane);
             }
-            Region<Euclidean2D> polyRegion = new PolygonsSet(lines);
+            Region<Euclidean2D> polyRegion = new PolygonsSet(lines, 1.0e-10);
             SubPlane polygon = new SubPlane(polyPlane, polyRegion);
             subHyperplaneList.add(polygon);
         }
-        PolyhedronsSet polyhedronsSet = new PolyhedronsSet(subHyperplaneList);
+        PolyhedronsSet polyhedronsSet = new PolyhedronsSet(subHyperplaneList, 1.0e-10);
         Assert.assertEquals( 8.0, polyhedronsSet.getSize(), 3.0e-6);
         Assert.assertEquals(24.0, polyhedronsSet.getBoundarySize(), 5.0e-6);
     }

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/SubLineTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/SubLineTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/SubLineTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/threed/SubLineTest.java Fri Jan  3 18:06:20 2014
@@ -31,7 +31,7 @@ public class SubLineTest {
     public void testEndPoints() throws MathIllegalArgumentException {
         Vector3D p1 = new Vector3D(-1, -7, 2);
         Vector3D p2 = new Vector3D(7, -1, 0);
-        Segment segment = new Segment(p1, p2, new Line(p1, p2));
+        Segment segment = new Segment(p1, p2, new Line(p1, p2, 1.0e-10));
         SubLine sub = new SubLine(segment);
         List<Segment> segments = sub.getSegments();
         Assert.assertEquals(1, segments.size());
@@ -41,7 +41,7 @@ public class SubLineTest {
 
     @Test
     public void testNoEndPoints() throws MathIllegalArgumentException {
-        SubLine wholeLine = new Line(new Vector3D(-1, 7, 2), new Vector3D(7, 1, 0)).wholeLine();
+        SubLine wholeLine = new Line(new Vector3D(-1, 7, 2), new Vector3D(7, 1, 0), 1.0e-10).wholeLine();
         List<Segment> segments = wholeLine.getSegments();
         Assert.assertEquals(1, segments.size());
         Assert.assertTrue(Double.isInfinite(segments.get(0).getStart().getX()) &&
@@ -60,25 +60,25 @@ public class SubLineTest {
 
     @Test
     public void testNoSegments() throws MathIllegalArgumentException {
-        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, 0)),
-                                    (IntervalsSet) new RegionFactory<Euclidean1D>().getComplement(new IntervalsSet()));
+        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, 0), 1.0e-10),
+                                    (IntervalsSet) new RegionFactory<Euclidean1D>().getComplement(new IntervalsSet(1.0e-10)));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(0, segments.size());
     }
 
     @Test
     public void testSeveralSegments() throws MathIllegalArgumentException {
-        SubLine twoSubs = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, 0)),
-                                      (IntervalsSet) new RegionFactory<Euclidean1D>().union(new IntervalsSet(1, 2),
-                                                                                            new IntervalsSet(3, 4)));
+        SubLine twoSubs = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, 0), 1.0e-10),
+                                      (IntervalsSet) new RegionFactory<Euclidean1D>().union(new IntervalsSet(1, 2, 1.0e-10),
+                                                                                            new IntervalsSet(3, 4, 1.0e-10)));
         List<Segment> segments = twoSubs.getSegments();
         Assert.assertEquals(2, segments.size());
     }
 
     @Test
     public void testHalfInfiniteNeg() throws MathIllegalArgumentException {
-        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, -2)),
-                                    new IntervalsSet(Double.NEGATIVE_INFINITY, 0.0));
+        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, -2), 1.0e-10),
+                                    new IntervalsSet(Double.NEGATIVE_INFINITY, 0.0, 1.0e-10));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(1, segments.size());
         Assert.assertTrue(Double.isInfinite(segments.get(0).getStart().getX()) &&
@@ -92,8 +92,8 @@ public class SubLineTest {
 
     @Test
     public void testHalfInfinitePos() throws MathIllegalArgumentException {
-        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, -2)),
-                                    new IntervalsSet(0.0, Double.POSITIVE_INFINITY));
+        SubLine empty = new SubLine(new Line(new Vector3D(-1, -7, 2), new Vector3D(7, -1, -2), 1.0e-10),
+                                    new IntervalsSet(0.0, Double.POSITIVE_INFINITY, 1.0e-10));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(1, segments.size());
         Assert.assertEquals(0.0, new Vector3D(3, -4, 0).distance(segments.get(0).getStart()), 1.0e-10);
@@ -107,56 +107,56 @@ public class SubLineTest {
 
     @Test
     public void testIntersectionInsideInside() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 2, 2));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 2, 2), 1.0e-10);
         Assert.assertEquals(0.0, new Vector3D(2, 1, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
         Assert.assertEquals(0.0, new Vector3D(2, 1, 1).distance(sub1.intersection(sub2, false)), 1.0e-12);
     }
 
     @Test
     public void testIntersectionInsideBoundary() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 1, 1));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 1, 1), 1.0e-10);
         Assert.assertEquals(0.0, new Vector3D(2, 1, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionInsideOutside() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(3, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionBoundaryBoundary() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(2, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 1, 1));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(2, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 1, 1), 1.0e-10);
         Assert.assertEquals(0.0, new Vector3D(2, 1, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionBoundaryOutside() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(2, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(2, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionOutsideOutside() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(1.5, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(1.5, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 0, 0), new Vector3D(2, 0.5, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
     
     @Test
     public void testIntersectionNotIntersecting() throws MathIllegalArgumentException {
-        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(1.5, 1, 1));
-        SubLine sub2 = new SubLine(new Vector3D(2, 3, 0), new Vector3D(2, 3, 0.5));
+        SubLine sub1 = new SubLine(new Vector3D(1, 1, 1), new Vector3D(1.5, 1, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector3D(2, 3, 0), new Vector3D(2, 3, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/LineTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/LineTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/LineTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/LineTest.java Fri Jan  3 18:06:20 2014
@@ -17,6 +17,7 @@
 package org.apache.commons.math3.geometry.euclidean.twod;
 
 import org.apache.commons.math3.exception.MathIllegalArgumentException;
+import org.apache.commons.math3.geometry.Point;
 import org.apache.commons.math3.geometry.euclidean.oned.Euclidean1D;
 import org.apache.commons.math3.geometry.euclidean.oned.Vector1D;
 import org.apache.commons.math3.geometry.euclidean.twod.Line;
@@ -32,7 +33,7 @@ public class LineTest {
 
     @Test
     public void testContains() {
-        Line l = new Line(new Vector2D(0, 1), new Vector2D(1, 2));
+        Line l = new Line(new Vector2D(0, 1), new Vector2D(1, 2), 1.0e-10);
         Assert.assertTrue(l.contains(new Vector2D(0, 1)));
         Assert.assertTrue(l.contains(new Vector2D(1, 2)));
         Assert.assertTrue(l.contains(new Vector2D(7, 8)));
@@ -41,45 +42,45 @@ public class LineTest {
 
     @Test
     public void testAbscissa() {
-        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2));
+        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2), 1.0e-10);
         Assert.assertEquals(0.0,
-                            (l.toSubSpace(new Vector2D(-3,  4))).getX(),
+                            (l.toSubSpace((Point<Euclidean2D>) new Vector2D(-3,  4))).getX(),
                             1.0e-10);
         Assert.assertEquals(0.0,
-                            (l.toSubSpace(new Vector2D( 3, -4))).getX(),
+                            (l.toSubSpace((Point<Euclidean2D>) new Vector2D( 3, -4))).getX(),
                             1.0e-10);
         Assert.assertEquals(-5.0,
-                            (l.toSubSpace(new Vector2D( 7, -1))).getX(),
+                            (l.toSubSpace((Point<Euclidean2D>) new Vector2D( 7, -1))).getX(),
                             1.0e-10);
         Assert.assertEquals( 5.0,
-                             (l.toSubSpace(new Vector2D(-1, -7))).getX(),
+                             (l.toSubSpace((Point<Euclidean2D>) new Vector2D(-1, -7))).getX(),
                              1.0e-10);
     }
 
     @Test
     public void testOffset() {
-        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2));
-        Assert.assertEquals(-5.0, l.getOffset(new Vector2D(5, -3)), 1.0e-10);
-        Assert.assertEquals(+5.0, l.getOffset(new Vector2D(-5, 2)), 1.0e-10);
+        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2), 1.0e-10);
+        Assert.assertEquals(-5.0, l.getOffset((Point<Euclidean2D>) new Vector2D(5, -3)), 1.0e-10);
+        Assert.assertEquals(+5.0, l.getOffset((Point<Euclidean2D>) new Vector2D(-5, 2)), 1.0e-10);
     }
 
     @Test
     public void testDistance() {
-        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2));
+        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2), 1.0e-10);
         Assert.assertEquals(+5.0, l.distance(new Vector2D(5, -3)), 1.0e-10);
         Assert.assertEquals(+5.0, l.distance(new Vector2D(-5, 2)), 1.0e-10);
     }
 
     @Test
     public void testPointAt() {
-        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2));
+        Line l = new Line(new Vector2D(2, 1), new Vector2D(-2, -2), 1.0e-10);
         for (double a = -2.0; a < 2.0; a += 0.2) {
-            Vector1D pA = new Vector1D(a);
-            Vector2D point = l.toSpace(pA);
+            Point<Euclidean1D> pA = new Vector1D(a);
+            Point<Euclidean2D> point = l.toSpace(pA);
             Assert.assertEquals(a, (l.toSubSpace(point)).getX(), 1.0e-10);
             Assert.assertEquals(0.0, l.getOffset(point),   1.0e-10);
             for (double o = -2.0; o < 2.0; o += 0.2) {
-                point = l.getPointAt(pA, o);
+                point = l.getPointAt((Vector1D) pA, o);
                 Assert.assertEquals(a, (l.toSubSpace(point)).getX(), 1.0e-10);
                 Assert.assertEquals(o, l.getOffset(point),   1.0e-10);
             }
@@ -88,34 +89,34 @@ public class LineTest {
 
     @Test
     public void testOriginOffset() {
-        Line l1 = new Line(new Vector2D(0, 1), new Vector2D(1, 2));
+        Line l1 = new Line(new Vector2D(0, 1), new Vector2D(1, 2), 1.0e-10);
         Assert.assertEquals(FastMath.sqrt(0.5), l1.getOriginOffset(), 1.0e-10);
-        Line l2 = new Line(new Vector2D(1, 2), new Vector2D(0, 1));
+        Line l2 = new Line(new Vector2D(1, 2), new Vector2D(0, 1), 1.0e-10);
         Assert.assertEquals(-FastMath.sqrt(0.5), l2.getOriginOffset(), 1.0e-10);
     }
 
     @Test
     public void testParallel() {
-        Line l1 = new Line(new Vector2D(0, 1), new Vector2D(1, 2));
-        Line l2 = new Line(new Vector2D(2, 2), new Vector2D(3, 3));
+        Line l1 = new Line(new Vector2D(0, 1), new Vector2D(1, 2), 1.0e-10);
+        Line l2 = new Line(new Vector2D(2, 2), new Vector2D(3, 3), 1.0e-10);
         Assert.assertTrue(l1.isParallelTo(l2));
-        Line l3 = new Line(new Vector2D(1, 0), new Vector2D(0.5, -0.5));
+        Line l3 = new Line(new Vector2D(1, 0), new Vector2D(0.5, -0.5), 1.0e-10);
         Assert.assertTrue(l1.isParallelTo(l3));
-        Line l4 = new Line(new Vector2D(1, 0), new Vector2D(0.5, -0.51));
+        Line l4 = new Line(new Vector2D(1, 0), new Vector2D(0.5, -0.51), 1.0e-10);
         Assert.assertTrue(! l1.isParallelTo(l4));
     }
 
     @Test
     public void testTransform() throws MathIllegalArgumentException {
 
-        Line l1 = new Line(new Vector2D(1.0 ,1.0), new Vector2D(4.0 ,1.0));
+        Line l1 = new Line(new Vector2D(1.0 ,1.0), new Vector2D(4.0 ,1.0), 1.0e-10);
         Transform<Euclidean2D, Euclidean1D> t1 =
             Line.getTransform(new AffineTransform(0.0, 0.5, -1.0, 0.0, 1.0, 1.5));
         Assert.assertEquals(0.5 * FastMath.PI,
                             ((Line) t1.apply(l1)).getAngle(),
                             1.0e-10);
 
-        Line l2 = new Line(new Vector2D(0.0, 0.0), new Vector2D(1.0, 1.0));
+        Line l2 = new Line(new Vector2D(0.0, 0.0), new Vector2D(1.0, 1.0), 1.0e-10);
         Transform<Euclidean2D, Euclidean1D> t2 =
             Line.getTransform(new AffineTransform(0.0, 0.5, -1.0, 0.0, 1.0, 1.5));
         Assert.assertEquals(FastMath.atan2(1.0, -2.0),
@@ -126,8 +127,8 @@ public class LineTest {
 
     @Test
     public void testIntersection() {
-        Line    l1 = new Line(new Vector2D( 0, 1), new Vector2D(1, 2));
-        Line    l2 = new Line(new Vector2D(-1, 2), new Vector2D(2, 1));
+        Line    l1 = new Line(new Vector2D( 0, 1), new Vector2D(1, 2), 1.0e-10);
+        Line    l2 = new Line(new Vector2D(-1, 2), new Vector2D(2, 1), 1.0e-10);
         Vector2D p  = l1.intersection(l2);
         Assert.assertEquals(0.5, p.getX(), 1.0e-10);
         Assert.assertEquals(1.5, p.getY(), 1.0e-10);

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/PolygonsSetTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/PolygonsSetTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/PolygonsSetTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/PolygonsSetTest.java Fri Jan  3 18:06:20 2014
@@ -226,7 +226,7 @@ public class PolygonsSetTest {
         };
         PolygonsSet set = buildSet(vertices);
 
-        Line l1 = new Line(new Vector2D(-1.5, 0.0), FastMath.PI / 4);
+        Line l1 = new Line(new Vector2D(-1.5, 0.0), FastMath.PI / 4, 1.0e-10);
         SubLine s1 = (SubLine) set.intersection(l1.wholeHyperplane());
         List<Interval> i1 = ((IntervalsSet) s1.getRemainingRegion()).asList();
         Assert.assertEquals(2, i1.size());
@@ -245,7 +245,7 @@ public class PolygonsSetTest {
         Assert.assertEquals(1.5, p11Upper.getX(), 1.0e-10);
         Assert.assertEquals(3.0, p11Upper.getY(), 1.0e-10);
 
-        Line l2 = new Line(new Vector2D(-1.0, 2.0), 0);
+        Line l2 = new Line(new Vector2D(-1.0, 2.0), 0, 1.0e-10);
         SubLine s2 = (SubLine) set.intersection(l2.wholeHyperplane());
         List<Interval> i2 = ((IntervalsSet) s2.getRemainingRegion()).asList();
         Assert.assertEquals(1, i2.size());
@@ -573,13 +573,13 @@ public class PolygonsSetTest {
         double pi6   = FastMath.PI / 6.0;
         double sqrt3 = FastMath.sqrt(3.0);
         SubLine[] hyp = {
-            new Line(new Vector2D(   0.0, 1.0),  5 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(-sqrt3, 1.0),  7 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(-sqrt3, 1.0),  9 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(-sqrt3, 0.0), 11 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(   0.0, 0.0), 13 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(   0.0, 1.0),  3 * pi6).wholeHyperplane(),
-            new Line(new Vector2D(-5.0 * sqrt3 / 6.0, 0.0), 9 * pi6).wholeHyperplane()
+            new Line(new Vector2D(   0.0, 1.0),  5 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(-sqrt3, 1.0),  7 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(-sqrt3, 1.0),  9 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(-sqrt3, 0.0), 11 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(   0.0, 0.0), 13 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(   0.0, 1.0),  3 * pi6, 1.0e-10).wholeHyperplane(),
+            new Line(new Vector2D(-5.0 * sqrt3 / 6.0, 0.0), 9 * pi6, 1.0e-10).wholeHyperplane()
         };
         hyp[1] = (SubLine) hyp[1].split(hyp[0].getHyperplane()).getMinus();
         hyp[2] = (SubLine) hyp[2].split(hyp[1].getHyperplane()).getMinus();
@@ -591,13 +591,14 @@ public class PolygonsSetTest {
         for (int i = hyp.length - 1; i >= 0; --i) {
             tree = new BSPTree<Euclidean2D>(hyp[i], new BSPTree<Euclidean2D>(Boolean.FALSE), tree, null);
         }
-        PolygonsSet set = new PolygonsSet(tree);
+        PolygonsSet set = new PolygonsSet(tree, 1.0e-10);
         SubLine splitter =
-            new Line(new Vector2D(-2.0 * sqrt3 / 3.0, 0.0), 9 * pi6).wholeHyperplane();
+            new Line(new Vector2D(-2.0 * sqrt3 / 3.0, 0.0), 9 * pi6, 1.0e-10).wholeHyperplane();
         PolygonsSet slice =
             new PolygonsSet(new BSPTree<Euclidean2D>(splitter,
                                                      set.getTree(false).split(splitter).getPlus(),
-                                                     new BSPTree<Euclidean2D>(Boolean.FALSE), null));
+                                                     new BSPTree<Euclidean2D>(Boolean.FALSE), null),
+                            1.0e-10);
         Assert.assertEquals(Region.Location.OUTSIDE,
                             slice.checkPoint(new Vector2D(0.1, 0.5)));
         Assert.assertEquals(11.0 / 3.0, slice.getBoundarySize(), 1.0e-10);
@@ -720,8 +721,8 @@ public class PolygonsSetTest {
                                                new BSPTree<Euclidean2D>(Boolean.FALSE), b5, null);
 
         PolygonsSet c =
-            (PolygonsSet) new RegionFactory<Euclidean2D>().union(new PolygonsSet(a9),
-                                                                 new PolygonsSet(b6));
+            (PolygonsSet) new RegionFactory<Euclidean2D>().union(new PolygonsSet(a9, 1.0e-10),
+                                                                 new PolygonsSet(b6, 1.0e-10));
 
         checkPoints(Region.Location.INSIDE, c, new Vector2D[] {
             new Vector2D(0.83, -0.06),
@@ -767,35 +768,37 @@ public class PolygonsSetTest {
 
         Line[] l = {
             new Line(new Vector2D(0.0, 0.625000007541172),
-                     new Vector2D(1.0, 0.625000007541172)),
+                     new Vector2D(1.0, 0.625000007541172), 1.0e-10),
                      new Line(new Vector2D(-0.19204433621902645, 0.0),
-                              new Vector2D(-0.19204433621902645, 1.0)),
+                              new Vector2D(-0.19204433621902645, 1.0), 1.0e-10),
                               new Line(new Vector2D(-0.40303524786887,  0.4248364535319128),
-                                       new Vector2D(-1.12851149797877, -0.2634107480798909)),
+                                       new Vector2D(-1.12851149797877, -0.2634107480798909), 1.0e-10),
                                        new Line(new Vector2D(0.0, 2.0),
-                                                new Vector2D(1.0, 2.0))
+                                                new Vector2D(1.0, 2.0), 1.0e-10)
         };
 
         BSPTree<Euclidean2D> node1 =
             new BSPTree<Euclidean2D>(new SubLine(l[0],
                                           new IntervalsSet(intersectionAbscissa(l[0], l[1]),
-                                                           intersectionAbscissa(l[0], l[2]))),
+                                                           intersectionAbscissa(l[0], l[2]),
+                                                           1.0e-10)),
                                                            new BSPTree<Euclidean2D>(Boolean.TRUE), new BSPTree<Euclidean2D>(Boolean.FALSE),
                                                            null);
         BSPTree<Euclidean2D> node2 =
             new BSPTree<Euclidean2D>(new SubLine(l[1],
                                           new IntervalsSet(intersectionAbscissa(l[1], l[2]),
-                                                           intersectionAbscissa(l[1], l[3]))),
+                                                           intersectionAbscissa(l[1], l[3]),
+                                                           1.0e-10)),
                                                            node1, new BSPTree<Euclidean2D>(Boolean.FALSE), null);
         BSPTree<Euclidean2D> node3 =
             new BSPTree<Euclidean2D>(new SubLine(l[2],
                                           new IntervalsSet(intersectionAbscissa(l[2], l[3]),
-                                                           Double.POSITIVE_INFINITY)),
+                                                           Double.POSITIVE_INFINITY, 1.0e-10)),
                                                            node2, new BSPTree<Euclidean2D>(Boolean.FALSE), null);
         BSPTree<Euclidean2D> node4 =
             new BSPTree<Euclidean2D>(l[3].wholeHyperplane(), node3, new BSPTree<Euclidean2D>(Boolean.FALSE), null);
 
-        PolygonsSet set = new PolygonsSet(node4);
+        PolygonsSet set = new PolygonsSet(node4, 1.0e-10);
         Assert.assertEquals(0, set.getVertices().length);
 
     }
@@ -991,11 +994,11 @@ public class PolygonsSetTest {
                 edges.add(buildSegment(vertices[i][j], vertices[i][(j + 1) % l]));
             }
         }
-        return new PolygonsSet(edges);
+        return new PolygonsSet(edges, 1.0e-10);
     }
 
     private SubHyperplane<Euclidean2D> buildLine(Vector2D start, Vector2D end) {
-        return new Line(start, end).wholeHyperplane();
+        return new Line(start, end, 1.0e-10).wholeHyperplane();
     }
 
     private double intersectionAbscissa(Line l0, Line l1) {
@@ -1005,21 +1008,21 @@ public class PolygonsSetTest {
 
     private SubHyperplane<Euclidean2D> buildHalfLine(Vector2D start, Vector2D end,
                                                      boolean startIsVirtual) {
-        Line   line  = new Line(start, end);
+        Line   line  = new Line(start, end, 1.0e-10);
         double lower = startIsVirtual
         ? Double.NEGATIVE_INFINITY
         : (line.toSubSpace(start)).getX();
         double upper = startIsVirtual
         ? (line.toSubSpace(end)).getX()
         : Double.POSITIVE_INFINITY;
-        return new SubLine(line, new IntervalsSet(lower, upper));
+        return new SubLine(line, new IntervalsSet(lower, upper, 1.0e-10));
     }
 
     private SubHyperplane<Euclidean2D> buildSegment(Vector2D start, Vector2D end) {
-        Line   line  = new Line(start, end);
+        Line   line  = new Line(start, end, 1.0e-10);
         double lower = (line.toSubSpace(start)).getX();
         double upper = (line.toSubSpace(end)).getX();
-        return new SubLine(line, new IntervalsSet(lower, upper));
+        return new SubLine(line, new IntervalsSet(lower, upper, 1.0e-10));
     }
 
     private void checkPoints(Region.Location expected, PolygonsSet set,
@@ -1032,7 +1035,7 @@ public class PolygonsSetTest {
     private boolean checkInSegment(Vector2D p,
                                    Vector2D p1, Vector2D p2,
                                    double tolerance) {
-        Line line = new Line(p1, p2);
+        Line line = new Line(p1, p2, 1.0e-10);
         if (line.getOffset(p) < tolerance) {
             double x  = (line.toSubSpace(p)).getX();
             double x1 = (line.toSubSpace(p1)).getX();

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SegmentTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SegmentTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SegmentTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SegmentTest.java Fri Jan  3 18:06:20 2014
@@ -28,7 +28,7 @@ public class SegmentTest {
     public void testDistance() {
         Vector2D start = new Vector2D(2, 2);
         Vector2D end = new Vector2D(-2, -2);
-        Segment segment = new Segment(start, end, new Line(start, end));
+        Segment segment = new Segment(start, end, new Line(start, end, 1.0e-10));
 
         // distance to center of segment
         Assert.assertEquals(FastMath.sqrt(2), segment.distance(new Vector2D(1, -1)), 1.0e-10);

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SubLineTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SubLineTest.java?rev=1555174&r1=1555173&r2=1555174&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SubLineTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/euclidean/twod/SubLineTest.java Fri Jan  3 18:06:20 2014
@@ -18,6 +18,7 @@ package org.apache.commons.math3.geometr
 
 import java.util.List;
 
+import org.apache.commons.math3.geometry.Point;
 import org.apache.commons.math3.geometry.euclidean.oned.Euclidean1D;
 import org.apache.commons.math3.geometry.euclidean.oned.IntervalsSet;
 import org.apache.commons.math3.geometry.partitioning.RegionFactory;
@@ -30,17 +31,17 @@ public class SubLineTest {
     public void testEndPoints() {
         Vector2D p1 = new Vector2D(-1, -7);
         Vector2D p2 = new Vector2D(7, -1);
-        Segment segment = new Segment(p1, p2, new Line(p1, p2));
+        Segment segment = new Segment(p1, p2, new Line(p1, p2, 1.0e-10));
         SubLine sub = new SubLine(segment);
         List<Segment> segments = sub.getSegments();
         Assert.assertEquals(1, segments.size());
-        Assert.assertEquals(0.0, new Vector2D(-1, -7).distance(segments.get(0).getStart()), 1.0e-10);
-        Assert.assertEquals(0.0, new Vector2D( 7, -1).distance(segments.get(0).getEnd()), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(-1, -7).distance((Point<Euclidean2D>) segments.get(0).getStart()), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D( 7, -1).distance((Point<Euclidean2D>) segments.get(0).getEnd()), 1.0e-10);
     }
 
     @Test
     public void testNoEndPoints() {
-        SubLine wholeLine = new Line(new Vector2D(-1, 7), new Vector2D(7, 1)).wholeHyperplane();
+        SubLine wholeLine = new Line(new Vector2D(-1, 7), new Vector2D(7, 1), 1.0e-10).wholeHyperplane();
         List<Segment> segments = wholeLine.getSegments();
         Assert.assertEquals(1, segments.size());
         Assert.assertTrue(Double.isInfinite(segments.get(0).getStart().getX()) &&
@@ -55,41 +56,41 @@ public class SubLineTest {
 
     @Test
     public void testNoSegments() {
-        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1)),
-                                    new RegionFactory<Euclidean1D>().getComplement(new IntervalsSet()));
+        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1), 1.0e-10),
+                                    new RegionFactory<Euclidean1D>().getComplement(new IntervalsSet(1.0e-10)));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(0, segments.size());
     }
 
     @Test
     public void testSeveralSegments() {
-        SubLine twoSubs = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1)),
-                                    new RegionFactory<Euclidean1D>().union(new IntervalsSet(1, 2),
-                                                                           new IntervalsSet(3, 4)));
+        SubLine twoSubs = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1), 1.0e-10),
+                                    new RegionFactory<Euclidean1D>().union(new IntervalsSet(1, 2, 1.0e-10),
+                                                                           new IntervalsSet(3, 4, 1.0e-10)));
         List<Segment> segments = twoSubs.getSegments();
         Assert.assertEquals(2, segments.size());
     }
 
     @Test
     public void testHalfInfiniteNeg() {
-        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1)),
-                                    new IntervalsSet(Double.NEGATIVE_INFINITY, 0.0));
+        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1), 1.0e-10),
+                                    new IntervalsSet(Double.NEGATIVE_INFINITY, 0.0, 1.0e-10));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(1, segments.size());
         Assert.assertTrue(Double.isInfinite(segments.get(0).getStart().getX()) &&
                           segments.get(0).getStart().getX() < 0);
         Assert.assertTrue(Double.isInfinite(segments.get(0).getStart().getY()) &&
                           segments.get(0).getStart().getY() < 0);
-        Assert.assertEquals(0.0, new Vector2D(3, -4).distance(segments.get(0).getEnd()), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(3, -4).distance((Point<Euclidean2D>) segments.get(0).getEnd()), 1.0e-10);
     }
 
     @Test
     public void testHalfInfinitePos() {
-        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1)),
-                                    new IntervalsSet(0.0, Double.POSITIVE_INFINITY));
+        SubLine empty = new SubLine(new Line(new Vector2D(-1, -7), new Vector2D(7, -1), 1.0e-10),
+                                    new IntervalsSet(0.0, Double.POSITIVE_INFINITY, 1.0e-10));
         List<Segment> segments = empty.getSegments();
         Assert.assertEquals(1, segments.size());
-        Assert.assertEquals(0.0, new Vector2D(3, -4).distance(segments.get(0).getStart()), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(3, -4).distance((Point<Euclidean2D>) segments.get(0).getStart()), 1.0e-10);
         Assert.assertTrue(Double.isInfinite(segments.get(0).getEnd().getX()) &&
                           segments.get(0).getEnd().getX() > 0);
         Assert.assertTrue(Double.isInfinite(segments.get(0).getEnd().getY()) &&
@@ -98,56 +99,56 @@ public class SubLineTest {
 
     @Test
     public void testIntersectionInsideInside() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 2));
-        Assert.assertEquals(0.0, new Vector2D(2, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
-        Assert.assertEquals(0.0, new Vector2D(2, 1).distance(sub1.intersection(sub2, false)), 1.0e-12);
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 2), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(2, 1).distance((Point<Euclidean2D>) sub1.intersection(sub2, true)),  1.0e-12);
+        Assert.assertEquals(0.0, new Vector2D(2, 1).distance((Point<Euclidean2D>) sub1.intersection(sub2, false)), 1.0e-12);
     }
 
     @Test
     public void testIntersectionInsideBoundary() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 1));
-        Assert.assertEquals(0.0, new Vector2D(2, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 1), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(2, 1).distance((Point<Euclidean2D>) sub1.intersection(sub2, true)),  1.0e-12);
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionInsideOutside() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5));
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(3, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionBoundaryBoundary() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(2, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 1));
-        Assert.assertEquals(0.0, new Vector2D(2, 1).distance(sub1.intersection(sub2, true)),  1.0e-12);
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(2, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 1), 1.0e-10);
+        Assert.assertEquals(0.0, new Vector2D(2, 1).distance((Point<Euclidean2D>) sub1.intersection(sub2, true)),  1.0e-12);
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionBoundaryOutside() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(2, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5));
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(2, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionOutsideOutside() {
-        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(1.5, 1));
-        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5));
+        SubLine sub1 = new SubLine(new Vector2D(1, 1), new Vector2D(1.5, 1), 1.0e-10);
+        SubLine sub2 = new SubLine(new Vector2D(2, 0), new Vector2D(2, 0.5), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }
 
     @Test
     public void testIntersectionParallel() {
-        final SubLine sub1 = new SubLine(new Vector2D(0, 1), new Vector2D(0, 2));
-        final SubLine sub2 = new SubLine(new Vector2D(66, 3), new Vector2D(66, 4));
+        final SubLine sub1 = new SubLine(new Vector2D(0, 1), new Vector2D(0, 2), 1.0e-10);
+        final SubLine sub2 = new SubLine(new Vector2D(66, 3), new Vector2D(66, 4), 1.0e-10);
         Assert.assertNull(sub1.intersection(sub2, true));
         Assert.assertNull(sub1.intersection(sub2, false));
     }

Added: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java?rev=1555174&view=auto
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java (added)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java Fri Jan  3 18:06:20 2014
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.math3.geometry.spherical.twod;
+
+import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
+import org.apache.commons.math3.geometry.partitioning.Region.Location;
+import org.apache.commons.math3.random.UnitSphereRandomVectorGenerator;
+import org.apache.commons.math3.random.Well1024a;
+import org.apache.commons.math3.util.FastMath;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SphericalPolygonsSetTest {
+
+    @Test
+    public void testFullSphere() {
+        SphericalPolygonsSet full = new SphericalPolygonsSet(1.0e-10);
+        UnitSphereRandomVectorGenerator random =
+                new UnitSphereRandomVectorGenerator(3, new Well1024a(0x852fd2a0ed8d2f6dl));
+        for (int i = 0; i < 1000; ++i) {
+            Vector3D v = new Vector3D(random.nextVector());
+            Assert.assertEquals(Location.INSIDE, full.checkPoint(new S2Point(v)));
+        }
+    }
+
+    @Test
+    public void testSouthHemisphere() {
+        double tol = 0.01;
+        double sinTol = FastMath.sin(tol);
+        SphericalPolygonsSet south = new SphericalPolygonsSet(Vector3D.MINUS_K, tol);
+        UnitSphereRandomVectorGenerator random =
+                new UnitSphereRandomVectorGenerator(3, new Well1024a(0x852fd2a0ed8d2f6dl));
+        for (int i = 0; i < 1000; ++i) {
+            Vector3D v = new Vector3D(random.nextVector());
+            if (v.getZ() < -sinTol) {
+                Assert.assertEquals(Location.INSIDE, south.checkPoint(new S2Point(v)));
+            } else if (v.getZ() > sinTol) {
+                Assert.assertEquals(Location.OUTSIDE, south.checkPoint(new S2Point(v)));
+            } else {
+                Assert.assertEquals("" + v.getX() + " " + v.getY() + " " + v.getZ(),
+                                    Location.BOUNDARY, south.checkPoint(new S2Point(v)));
+            }
+        }
+    }
+
+}

Propchange: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSetTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"