public static <K, V> KV<K, V> of(K key, V value) {
    return new KV<>(key, value);
  }
@Test
  public void testOrderByValue() {
    Comparator<KV<Integer, Integer>> orderByValue = new KV.OrderByValue<>();
    for (Integer key1 : TEST_VALUES) {
      for (Integer val1 : TEST_VALUES) {
        for (Integer key2 : TEST_VALUES) {
          for (Integer val2 : TEST_VALUES) {
            assertEquals(
                compareInt(val1, val2), orderByValue.compare(KV.of(key1, val1), KV.of(key2, val2)));
          }
        }
      }
    }
  }