Skip to content

Commit

Permalink
Support negative numbers and add more unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thyrlian committed Apr 25, 2016
1 parent 8240d67 commit 358d9da
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
Expand Up @@ -14,7 +14,7 @@ public NumericRange(Range range) {
}

public static boolean isNumberFormat(String text) {
return Pattern.compile("^([1-9]|(0(\\.|$)))").matcher(text).find();
return Pattern.compile("^-?(([1-9]\\d*(\\.\\d+)?)||(0\\.\\d+)||0)$").matcher(text).find();
}

public boolean isValid(String valueText) {
Expand Down
Expand Up @@ -13,12 +13,26 @@ public void testIsNumberFormatPositive() {
assertTrue(NumericRange.isNumberFormat("0.0"));
assertTrue(NumericRange.isNumberFormat("0.123"));
assertTrue(NumericRange.isNumberFormat("1.23"));
assertTrue(NumericRange.isNumberFormat("10.23"));
assertTrue(NumericRange.isNumberFormat("12.34"));
assertTrue(NumericRange.isNumberFormat("100.234"));
assertTrue(NumericRange.isNumberFormat("100.023"));
assertTrue(NumericRange.isNumberFormat("123.456"));
assertTrue(NumericRange.isNumberFormat("123"));
assertTrue(NumericRange.isNumberFormat("-12"));
assertTrue(NumericRange.isNumberFormat("-0.1"));
assertTrue(NumericRange.isNumberFormat("-1.2"));
assertTrue(NumericRange.isNumberFormat("-12.34"));
assertTrue(NumericRange.isNumberFormat("-10.23"));
assertTrue(NumericRange.isNumberFormat("-100.234"));
assertTrue(NumericRange.isNumberFormat("-123.456"));
}

public void testIsNumberFormatNegative() {
assertFalse(NumericRange.isNumberFormat("00.123"));
assertFalse(NumericRange.isNumberFormat("01.23"));
assertFalse(NumericRange.isNumberFormat("10."));
assertFalse(NumericRange.isNumberFormat("--10"));
assertFalse(NumericRange.isNumberFormat("02012"));
assertFalse(NumericRange.isNumberFormat("a1000"));
}
Expand Down Expand Up @@ -55,23 +69,22 @@ public void testClosedIntRange() {
public void testClosedFloatRange() {
NumericRange numericRange = new NumericRange(Range.closed(0.0f, 100.0f));

assertTrue(numericRange.isValid(Float.toString(0.0f)));
assertTrue(numericRange.isValid(Float.toString(0.00000f)));
assertTrue(numericRange.isValid(Float.toString(0.00001f)));
assertTrue(numericRange.isValid(Float.toString(99.99f)));
assertTrue(numericRange.isValid(Float.toString(100.0f)));
assertTrue(numericRange.isValid(Float.toString(100.00000f)));
assertTrue(numericRange.isValid(Float.toString(50.0f)));
assertTrue(numericRange.isValid("0.0"));
assertTrue(numericRange.isValid("0.00000"));
assertTrue(numericRange.isValid("0.00001"));
assertTrue(numericRange.isValid("99.99"));
assertTrue(numericRange.isValid("100.0"));
assertTrue(numericRange.isValid("100.00000"));
assertTrue(numericRange.isValid("50.0"));
assertTrue(numericRange.isValid(Integer.toString(-0)));
assertTrue(numericRange.isValid(Integer.toString(0)));
assertTrue(numericRange.isValid(Integer.toString(50)));
assertTrue(numericRange.isValid(Integer.toString(100)));

assertFalse(numericRange.isValid(Float.toString(-0.0f)));
assertFalse(numericRange.isValid(Float.toString(-1.0f)));
assertFalse(numericRange.isValid(Float.toString(-0.00001f)));
assertFalse(numericRange.isValid(Float.toString(100.00001f)));
assertFalse(numericRange.isValid(Float.toString(1000.0f)));
assertFalse(numericRange.isValid("-0.00001"));
assertFalse(numericRange.isValid("-1.0"));
assertFalse(numericRange.isValid("100.00001"));
assertFalse(numericRange.isValid("1000.0"));
assertFalse(numericRange.isValid(Integer.toString(-1)));
assertFalse(numericRange.isValid(Integer.toString(101)));
}
Expand Down

0 comments on commit 358d9da

Please sign in to comment.