IntRangeUtil { public static int requireEquals(int val, int otherVal) { if (val != otherVal) { throw new IllegalArgumentException(val + IS_NOT_EQUAL_TO + otherVal); } return val; } private  IntRangeUtil(); static int requirePositive(int val); static int requireNegative(int val); static int requireZero(int val); static int requireNonPositive(int val); static int requireNonNegative(int val); static int requireNonZero(int val); static int requireEquals(int val, int otherVal); static int requireNotEquals(int val, int otherVal); static int requireInRange(int val, int first, int lastExclusive); static int requireInRangeClosed(int val, int first, int lastInclusive); static int requirePositive(int val, Function<String, E> exceptionConstructor); static int requireNegative(int val, Function<String, E> exceptionConstructor); static int requireZero(int val, Function<String, E> exceptionConstructor); static int requireNonPositive(int val, Function<String, E> exceptionConstructor); static int requireNonNegative(int val, Function<String, E> exceptionConstructor); static int requireNonZero(int val, Function<String, E> exceptionConstructor); static int requireEquals(int val, int otherVal, Function<String, E> exceptionConstructor); static int requireNotEquals(int val, int otherVal, Function<String, E> exceptionConstructor); static int requireInRange(int val, int first, int lastExclusive, Function<String, E> exceptionConstructor); static int requireInRangeClosed(int val, int first, int lastInclusive, Function<String, E> exceptionConstructor);  }
@Test void requireEquals() { final int otherVal = 3; testHelper(l -> l == otherVal, l -> IntRangeUtil.requireEquals(l, otherVal)); }
@Test void testRequireEquals() { assertEquals(0, IntRangeUtil.requireEquals(0, 0, RuntimeException::new)); }
@Test void testRequireEquals2() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(0,-1, RuntimeException::new)); }
@Test void testRequireEquals3() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(0,1, RuntimeException::new)); }
@Test void testRequireEquals4() { assertEquals(1.0, IntRangeUtil.requireEquals(1, 1, RuntimeException::new)); }
@Test void testRequireEquals5() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(1,0, RuntimeException::new)); }
@Test void testRequireEquals6() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(1,-1, RuntimeException::new)); }
@Test void testRequireEquals7() { assertEquals(-1.0, IntRangeUtil.requireEquals(-1, -1, RuntimeException::new)); }
@Test void testRequireEquals8() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(-1,0, RuntimeException::new)); }
@Test void testRequireEquals9() { assertThrows(RuntimeException.class, () -> IntRangeUtil.requireEquals(-1,1, RuntimeException::new)); }