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"