| package org.hamcrest.number; |
| |
| import org.hamcrest.Description; |
| import org.hamcrest.Matcher; |
| import org.hamcrest.TypeSafeMatcher; |
| |
| |
| /** |
| * Is the value a number actually not a number (NaN)? |
| */ |
| public final class IsNaN extends TypeSafeMatcher<Double> { |
| |
| private IsNaN() { } |
| |
| @Override |
| public boolean matchesSafely(Double item) { |
| return Double.isNaN(item); |
| } |
| |
| @Override |
| public void describeMismatchSafely(Double item, Description mismatchDescription) { |
| mismatchDescription.appendText("was ").appendValue(item); |
| } |
| |
| @Override |
| public void describeTo(Description description) { |
| description.appendText("a double value of NaN"); |
| } |
| |
| /** |
| * Creates a matcher of {@link Double}s that matches when an examined double is not a number. |
| * For example: |
| * <pre>assertThat(Double.NaN, is(notANumber()))</pre> |
| */ |
| public static Matcher<Double> notANumber() { |
| return new IsNaN(); |
| } |
| } |