Author: [log in to unmask]
Date: Wed Oct 19 13:11:44 2016
New Revision: 4517
Log:
circle fitting utility tests
Added:
java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/
java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/CircleFitTest.java
java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/TwoPointRadiusCircleFitterTest.java
Added: java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/CircleFitTest.java
=============================================================================
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/CircleFitTest.java (added)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/CircleFitTest.java Wed Oct 19 13:11:44 2016
@@ -0,0 +1,32 @@
+
+package org.hps.recon.tracking.circlefit;
+
+import static java.lang.Math.sqrt;
+import junit.framework.TestCase;
+
+/**
+ *
+ * @author Norman A. Graf
+ */
+public class CircleFitTest extends TestCase
+{
+
+ private boolean _debug = false;
+
+ public void testIt()
+ {
+ CircleFit fit = new CircleFit(0., 0., 1.);
+ if (_debug) {
+ System.out.println(fit);
+ }
+ double[][] testPoint = {{0., 1.}, {1., 0.}, {sqrt(0.5), sqrt(0.5)}};
+ double[] results = {-0., Double.NEGATIVE_INFINITY, -1.};
+ for (int i = 0; i < testPoint.length; ++i) {
+ double tangent = fit.tangentAtPoint(testPoint[i]);
+ assertEquals(tangent, results[i]);
+ if (_debug) {
+ System.out.println("tangent at (" + testPoint[i][0] + ", " + testPoint[i][1] + ") is " + tangent);
+ }
+ }
+ }
+}
Added: java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/TwoPointRadiusCircleFitterTest.java
=============================================================================
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/TwoPointRadiusCircleFitterTest.java (added)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/circlefit/TwoPointRadiusCircleFitterTest.java Wed Oct 19 13:11:44 2016
@@ -0,0 +1,46 @@
+
+package org.hps.recon.tracking.circlefit;
+
+import junit.framework.TestCase;
+import static org.hps.recon.tracking.circlefit.TwoPointRadiusCircleFitter.findCircles;
+
+/**
+ *
+ * @author Norman A. Graf
+ */
+public class TwoPointRadiusCircleFitterTest extends TestCase
+{
+
+ private boolean _debug = false;
+
+ public void testIt()
+ {
+ int i;
+ double[][] cases
+ = {{0.1234, 0.9876}, {0.8765, 0.2345},
+ {0.0000, 2.0000}, {0.0000, 0.0000},
+ {0.1234, 0.9876}, {0.1234, 0.9876},
+ {0.1234, 0.9876}, {0.8765, 0.2345},
+ {0.1234, 0.9876}, {0.1234, 0.9876}
+ };
+
+ double radii[] = {2.0, 1.0, 2.0, 0.5, 0.0};
+
+ for (i = 0; i < 5; i++) {
+ if (_debug) {
+ System.out.printf("\nCase %d)", i + 1);
+ }
+ CircleFit[] results = findCircles(cases[2 * i], cases[2 * i + 1], radii[i]);
+ if (_debug) {
+ if (results == null) {
+ System.out.println("found no solutions");
+ } else {
+ System.out.println("\n found " + results.length + " solution" + (results.length == 1 ? "" : "s"));
+ for (int j = 0; j < results.length; ++j) {
+ System.out.println(results[j]);
+ }
+ }
+ }
+ }
+ }
+}
|