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