public void testIntMethods() {
BinaryOperator<Integer> sum1 = Integer::sum;
IntBinaryOperator sum2 = Integer::sum;
BinaryOperator<Integer> max1 = Integer::max;
IntBinaryOperator max2 = Integer::max;
BinaryOperator<Integer> min1 = Integer::min;
IntBinaryOperator min2 = Integer::min;
Comparator<Integer> cmp = Integer::compare;
int[] numbers = { -1, 0, 1, 100, Integer.MAX_VALUE, Integer.MIN_VALUE };
for (int i : numbers) {
for (int j : numbers) {
assertEquals(i+j, (int) sum1.apply(i, j));
assertEquals(i+j, sum2.applyAsInt(i, j));
assertEquals(Math.max(i,j), (int) max1.apply(i, j));
assertEquals(Math.max(i,j), max2.applyAsInt(i, j));
assertEquals(Math.min(i,j), (int) min1.apply(i, j));
assertEquals(Math.min(i,j), min2.applyAsInt(i, j));
assertEquals(((Integer) i).compareTo(j), cmp.compare(i, j));
}
}
}