Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.1
-
None
-
None
-
None
-
Operating System: other
Platform: Other
-
39576
Description
Hello,
While testing function "Fraction math.fraction.FractionFormat.parse(String,
ParsePosition) ", I found it did not handle properly the case the input string
passed in is incorrect.
When I passed in a String that represented a Fraction to be parsed, if the
Fraction embedded in the String had a whole value, while either the numerator
or denominator had the negative sign, the function just returned
1/abs(denomitator).
Please see the following code segment for more details:
"
NumberFormat nf = null;
FractionFormat properFormat = FractionFormat.getProperInstance
(Locale.getDefault());
FractionFormat improperFormat = FractionFormat.getImproperInstance
(Locale.getDefault());
//Test 1 : fail
public void testParseNegative(){
String source = "1 -2 / 3";
ParsePosition pos = new ParsePosition(0);
Fraction actual = properFormat.parse(source, pos);
assertNull(actual);
}
// Test2: success
public void testParseNegative(){
String source = "1 -2 / 3";
ParsePosition pos = new ParsePosition(0);
Fraction actual = properFormat.parse(source, pos); // return Fraction 1/3
assertEquals(1, source.getNumerator());
assertEquals(3, source.getDenominator());
}
"
Note: Similarly, when I passed in the following inputs:
input 2: (source = “1 2 / -3”, pos = 0)
input 3: ( source = ” -1 -2 / 3”, pos = 0)
Function "Fraction parse(String, ParsePosition)" returned Fraction 1/3 (means
the result Fraction had numerator = 1 and denominator = 3)for all 3 inputs
above.
I think the function does not handle parsing the numberator/ denominator
properly incase input string provides negative numerator or negative
denominator while there is the whole value.
Thank you!
Nhung
Attachments
Issue Links
- duplicates
-
MATH-60 [math] Function math.fraction.ProperFractionFormat.parse(String, ParsePosition) return illogical result
- Closed