• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.hamcrest.number;
2 
3 import org.hamcrest.AbstractMatcherTest;
4 import org.hamcrest.Matcher;
5 
6 import java.math.BigDecimal;
7 
8 import static org.hamcrest.number.BigDecimalCloseTo.closeTo;
9 
10 public class BigDecimalCloseToTest  extends AbstractMatcherTest {
11   private final Matcher<BigDecimal> matcher = closeTo(new BigDecimal("1.0"), new BigDecimal("0.5"));
12 
13   @Override
createMatcher()14   protected Matcher<?> createMatcher() {
15     BigDecimal irrelevant = new BigDecimal("0.01");
16     return closeTo(irrelevant, irrelevant);
17   }
18 
testEvaluatesToTrueIfArgumentIsEqualToABigDecimalWithinSomeError()19   public void testEvaluatesToTrueIfArgumentIsEqualToABigDecimalWithinSomeError() {
20     assertTrue(matcher.matches(new BigDecimal("1.0")));
21     assertTrue(matcher.matches(new BigDecimal("0.5")));
22     assertTrue(matcher.matches(new BigDecimal("1.5")));
23 
24     assertDoesNotMatch("too large", matcher, new BigDecimal("2.0"));
25     assertMismatchDescription("<2.0> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("2.0"));
26     assertDoesNotMatch("number too small", matcher, new BigDecimal("0.0"));
27     assertMismatchDescription("<0.0> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("0.0"));
28   }
29 
testEvaluatesToTrueIfArgumentHasDifferentScale()30   public void testEvaluatesToTrueIfArgumentHasDifferentScale() {
31     assertTrue(matcher.matches(new BigDecimal("1.000000")));
32     assertTrue(matcher.matches(new BigDecimal("0.500000")));
33     assertTrue(matcher.matches(new BigDecimal("1.500000")));
34 
35     assertDoesNotMatch("too large", matcher, new BigDecimal("2.000000"));
36     assertMismatchDescription("<2.000000> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("2.000000"));
37     assertDoesNotMatch("number too small", matcher, new BigDecimal("0.000000"));
38     assertMismatchDescription("<0.000000> differed by <0.5> more than delta <0.5>", matcher, new BigDecimal("0.000000"));
39   }
40 
test_is_self_describing()41   public void test_is_self_describing() {
42     assertDescription("a numeric value within <0.5> of <1.0>", matcher);
43   }
44 
45 }
46