You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ps...@apache.org on 2006/06/05 05:06:52 UTC
svn commit: r411647 - in /jakarta/commons/proper/math/trunk:
src/java/org/apache/commons/math/fraction/ProperFractionFormat.java
src/test/org/apache/commons/math/fraction/FractionFormatTest.java
xdocs/changes.xml
Author: psteitz
Date: Sun Jun 4 20:06:52 2006
New Revision: 411647
URL: http://svn.apache.org/viewvc?rev=411647&view=rev
Log:
Modified ProperFractionFormat to reject embedded minus signs.
JIRA: MATH-60
Reported by Nhung Nnguyen
Modified:
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/ProperFractionFormat.java
jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionFormatTest.java
jakarta/commons/proper/math/trunk/xdocs/changes.xml
Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/ProperFractionFormat.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/ProperFractionFormat.java?rev=411647&r1=411646&r2=411647&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/ProperFractionFormat.java (original)
+++ jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/ProperFractionFormat.java Sun Jun 4 20:06:52 2006
@@ -24,6 +24,10 @@
/**
* Formats a Fraction number in proper format. The number format for each of
* the whole number, numerator and, denominator can be configured.
+ * <p>
+ * Minus signs are only allowed in the whole number part - i.e.,
+ * "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and
+ * will result in a <code>ParseException</code>.
*
* @since 1.1
* @version $Revision$ $Date$
@@ -114,6 +118,11 @@
/**
* Parses a string to produce a {@link Fraction} object. This method
* expects the string to be formatted as a proper fraction.
+ * <p>
+ * Minus signs are only allowed in the whole number part - i.e.,
+ * "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and
+ * will result in a <code>ParseException</code>.
+ *
* @param source the string to parse
* @param pos input/ouput parsing parameter.
* @return the parsed {@link Fraction} object.
@@ -152,6 +161,12 @@
pos.setIndex(initialIndex);
return null;
}
+
+ if (num.intValue() < 0) {
+ // minus signs should be leading, invalid expression
+ pos.setIndex(initialIndex);
+ return null;
+ }
// parse '/'
int startIndex = pos.getIndex();
@@ -182,6 +197,12 @@
// invalid integer number
// set index back to initial, error index should already be set
// character examined.
+ pos.setIndex(initialIndex);
+ return null;
+ }
+
+ if (den.intValue() < 0) {
+ // minus signs must be leading, invalid
pos.setIndex(initialIndex);
return null;
}
Modified: jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionFormatTest.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionFormatTest.java?rev=411647&r1=411646&r2=411647&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionFormatTest.java (original)
+++ jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionFormatTest.java Sun Jun 4 20:06:52 2006
@@ -229,6 +229,23 @@
}
}
+ public void testParseProperInvalidMinus() {
+ String source = "2 -2 / 3";
+ try {
+ Fraction c = properFormat.parse(source);
+ fail("invalid minus in improper fraction.");
+ } catch (ParseException ex) {
+ // expected
+ }
+ source = "2 2 / -3";
+ try {
+ Fraction c = properFormat.parse(source);
+ fail("invalid minus in improper fraction.");
+ } catch (ParseException ex) {
+ // expected
+ }
+ }
+
public void testNumeratorFormat() {
NumberFormat old = properFormat.getNumeratorFormat();
NumberFormat nf = NumberFormat.getInstance();
Modified: jakarta/commons/proper/math/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/xdocs/changes.xml?rev=411647&r1=411646&r2=411647&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/math/trunk/xdocs/changes.xml Sun Jun 4 20:06:52 2006
@@ -49,6 +49,9 @@
<action dev="psteitz" type="update" issue="MATH-148" due-to="Joni Salonen">
Added QR Decomposition.
</action>
+ <action dev="psteitz" type="fix" issue="MATH-60" due-to="Nhung Nnguyen">
+ Modified ProperFractionFormat to reject embedded minus signs.
+ </action>
</release>
<release version="1.1" date="2005-12-17"
description="This is a maintenance release containing bug fixes and enhancements.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org