blob: c82e6f4e38c782d94f7a1a336cb0876bf8505277 [file] [log] [blame]
package org.hamcrest.number;
import org.hamcrest.AbstractMatcherTest;
import org.hamcrest.Matcher;
import java.math.BigDecimal;
import static org.hamcrest.number.BigDecimalCloseTo.closeTo;
public class BigDecimalCloseToTest extends AbstractMatcherTest {
private final Matcher<BigDecimal> matcher = closeTo(new BigDecimal("1.0"), new BigDecimal("0.5"));
@Override
protected Matcher<?> createMatcher() {
BigDecimal irrelevant = new BigDecimal("0.01");
return closeTo(irrelevant, irrelevant);
}
public void testEvaluatesToTrueIfArgumentIsEqualToABigDecimalWithinSomeError() {
assertTrue(matcher.matches(new BigDecimal("1.0")));
assertTrue(matcher.matches(new BigDecimal("0.5")));
assertTrue(matcher.matches(new BigDecimal("1.5")));
assertDoesNotMatch("too large", matcher, new BigDecimal("2.0"));
assertMismatchDescription("<2.0> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("2.0"));
assertDoesNotMatch("number too small", matcher, new BigDecimal("0.0"));
assertMismatchDescription("<0.0> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("0.0"));
}
public void testEvaluatesToTrueIfArgumentHasDifferentScale() {
assertTrue(matcher.matches(new BigDecimal("1.000000")));
assertTrue(matcher.matches(new BigDecimal("0.500000")));
assertTrue(matcher.matches(new BigDecimal("1.500000")));
assertDoesNotMatch("too large", matcher, new BigDecimal("2.000000"));
assertMismatchDescription("<2.000000> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("2.000000"));
assertDoesNotMatch("number too small", matcher, new BigDecimal("0.000000"));
assertMismatchDescription("<0.000000> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("0.000000"));
}
public void test_is_self_describing() {
assertDescription("a numeric value within <0.5> of <1.0>", matcher);
}
}