Author: luc
Date: Tue Jan 22 12:58:20 2008
New Revision: 614320
URL: http://svn.apache.org/viewvc?rev=614320&view=rev
Log:
added Niall's patch for improved double constructor test
added test for construction failure (golden-ratio)
JIRA: MATH-179
Modified:
commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
Modified:
commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java?rev=614320&r1=614319&r2=614320&view=diff
==============================================================================
---
commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
(original)
+++
commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
Tue Jan 22 12:58:20 2008
@@ -63,7 +63,64 @@
fail(ex.getMessage());
}
}
-
+
+ public void testGoldenRatio() {
+ try {
+ // the golden ratio is notoriously a difficult number for
continuous fraction
+ new Fraction((1 + Math.sqrt(5)) / 2, 1.0e-12, 25);
+ fail("an exception should have been thrown");
+ } catch (ConvergenceException ce) {
+ // expected behavior
+ } catch (Exception e) {
+ fail("wrong exception caught");
+ }
+ }
+
+ // MATH-179
+ public void testDoubleConstructor() throws ConvergenceException {
+ assertFraction(1, 2, new Fraction((double)1 / (double)2));
+ assertFraction(1, 3, new Fraction((double)1 / (double)3));
+ assertFraction(2, 3, new Fraction((double)2 / (double)3));
+ assertFraction(1, 4, new Fraction((double)1 / (double)4));
+ assertFraction(3, 4, new Fraction((double)3 / (double)4));
+ assertFraction(1, 5, new Fraction((double)1 / (double)5));
+ assertFraction(2, 5, new Fraction((double)2 / (double)5));
+ assertFraction(3, 5, new Fraction((double)3 / (double)5));
+ assertFraction(4, 5, new Fraction((double)4 / (double)5));
+ assertFraction(1, 6, new Fraction((double)1 / (double)6));
+ assertFraction(5, 6, new Fraction((double)5 / (double)6));
+ assertFraction(1, 7, new Fraction((double)1 / (double)7));
+ assertFraction(2, 7, new Fraction((double)2 / (double)7));
+ assertFraction(3, 7, new Fraction((double)3 / (double)7));
+ assertFraction(4, 7, new Fraction((double)4 / (double)7));
+ assertFraction(5, 7, new Fraction((double)5 / (double)7));
+ assertFraction(6, 7, new Fraction((double)6 / (double)7));
+ assertFraction(1, 8, new Fraction((double)1 / (double)8));
+ assertFraction(3, 8, new Fraction((double)3 / (double)8));
+ assertFraction(5, 8, new Fraction((double)5 / (double)8));
+ assertFraction(7, 8, new Fraction((double)7 / (double)8));
+ assertFraction(1, 9, new Fraction((double)1 / (double)9));
+ assertFraction(2, 9, new Fraction((double)2 / (double)9));
+ assertFraction(4, 9, new Fraction((double)4 / (double)9));
+ assertFraction(5, 9, new Fraction((double)5 / (double)9));
+ assertFraction(7, 9, new Fraction((double)7 / (double)9));
+ assertFraction(8, 9, new Fraction((double)8 / (double)9));
+ assertFraction(1, 10, new Fraction((double)1 / (double)10));
+ assertFraction(3, 10, new Fraction((double)3 / (double)10));
+ assertFraction(7, 10, new Fraction((double)7 / (double)10));
+ assertFraction(9, 10, new Fraction((double)9 / (double)10));
+ assertFraction(1, 11, new Fraction((double)1 / (double)11));
+ assertFraction(2, 11, new Fraction((double)2 / (double)11));
+ assertFraction(3, 11, new Fraction((double)3 / (double)11));
+ assertFraction(4, 11, new Fraction((double)4 / (double)11));
+ assertFraction(5, 11, new Fraction((double)5 / (double)11));
+ assertFraction(6, 11, new Fraction((double)6 / (double)11));
+ assertFraction(7, 11, new Fraction((double)7 / (double)11));
+ assertFraction(8, 11, new Fraction((double)8 / (double)11));
+ assertFraction(9, 11, new Fraction((double)9 / (double)11));
+ assertFraction(10, 11, new Fraction((double)10 / (double)11));
+ }
+
public void testCompareTo() {
Fraction first = new Fraction(1, 2);
Fraction second = new Fraction(1, 3);