Home | History | Annotate | Download | only in number
      1 package org.hamcrest.number;
      2 
      3 import static org.hamcrest.core.AnyOf.anyOf;
      4 import static org.hamcrest.core.IsEqual.equalTo;
      5 import static org.hamcrest.core.IsNot.not;
      6 import static org.hamcrest.core.DescribedAs.describedAs;
      7 
      8 import org.hamcrest.Factory;
      9 import org.hamcrest.Matcher;
     10 
     11 @SuppressWarnings("unchecked")
     12 public class OrderingComparisons {
     13     @Factory
     14     public static <T extends Comparable<T>> Matcher<T> greaterThan(T value) {
     15         return new IsGreaterThan<T>(value);
     16     }
     17 
     18 	@Factory
     19     public static <T extends Comparable<T>> Matcher<T> greaterThanOrEqualTo(T value) {
     20         return describedAs("a value greater than or equal to %0",
     21                            anyOf(greaterThan(value), equalTo(value)),
     22                            value);
     23     }
     24 
     25     @Factory
     26     public static <T extends Comparable<T>> Matcher<T> lessThan(T value) {
     27         return describedAs("a value less than %0",
     28                            not(greaterThanOrEqualTo(value)),
     29                            value);
     30     }
     31 
     32     @Factory
     33     public static <T extends Comparable<T>> Matcher<T> lessThanOrEqualTo(T value) {
     34         return describedAs("a value less than or equal to %0",
     35                            not(greaterThan(value)),
     36                            value);
     37     }
     38 }
     39