Java 类com.google.common.collect.Maps.ValueDifferenceImpl 实例源码

项目:guava-mock    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "f"), 5,
      ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=z}: "
      + "value differences={3=(c, f), 5=(e, g)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("f", "c"), 5,
      ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:guava-mock    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
      .put(1, "a").put(2, "b").put(3, "c").put(4, "d").put(5, "e")
      .build();

  SortedMap<Integer, String> right =
      ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 =
      Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet()).containsExactly(
      Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b")).inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet()).containsExactly(
      Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
      Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f"))).inOrder();
  assertEquals("not equal: only on left={4=d, 2=b}: only on right={6=z}: "
      + "value differences={5=(e, g), 3=(c, f)}", diff1.toString());

  SortedMapDifference<Integer, String> diff2 =
      Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet()).containsExactly(
      Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d")).inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertEquals(ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:googles-monorepo-demo    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "f"), 5,
      ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=z}: "
      + "value differences={3=(c, f), 5=(e, g)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("f", "c"), 5,
      ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:googles-monorepo-demo    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
      .put(1, "a").put(2, "b").put(3, "c").put(4, "d").put(5, "e")
      .build();

  SortedMap<Integer, String> right =
      ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 =
      Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet()).containsExactly(
      Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b")).inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet()).containsExactly(
      Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
      Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f"))).inOrder();
  assertEquals("not equal: only on left={4=d, 2=b}: only on right={6=z}: "
      + "value differences={5=(e, g), 3=(c, f)}", diff1.toString());

  SortedMapDifference<Integer, String> diff2 =
      Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet()).containsExactly(
      Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d")).inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertEquals(ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:VarJ    文件:SortedMaps.java   
/**
 * Computes the difference between two sorted maps, using the comparator of
 * the left map, or {@code Ordering.natural()} if the left map uses the
 * natural ordering of its elements. This difference is an immutable snapshot
 * of the state of the maps at the time this method is called. It will never
 * change, even if the maps change at a later time.
 *
 * <p>Since this method uses {@code TreeMap} instances internally, the keys of
 * the right map must all compare as distinct according to the comparator
 * of the left map.
 *
 * <p><b>Note:</b>If you only need to know whether two sorted maps have the
 * same mappings, call {@code left.equals(right)} instead of this method.
 *
 * @param left the map to treat as the "left" map for purposes of comparison
 * @param right the map to treat as the "right" map for purposes of comparison
 * @return the difference between the two maps
 */
public static <K, V> SortedMapDifference<K, V> difference(
    SortedMap<K, ? extends V> left, Map<? extends K, ? extends V> right) {
  Comparator<? super K> comparator = orNaturalOrder(left.comparator());
  SortedMap<K, V> onlyOnLeft = Maps.newTreeMap(comparator);
  SortedMap<K, V> onlyOnRight = Maps.newTreeMap(comparator);
  onlyOnRight.putAll(right); // will whittle it down
  SortedMap<K, V> onBoth = Maps.newTreeMap(comparator);
  SortedMap<K, MapDifference.ValueDifference<V>> differences =
      Maps.newTreeMap(comparator);
  boolean eq = true;

  for (Entry<? extends K, ? extends V> entry : left.entrySet()) {
    K leftKey = entry.getKey();
    V leftValue = entry.getValue();
    if (right.containsKey(leftKey)) {
      V rightValue = onlyOnRight.remove(leftKey);
      if (Objects.equal(leftValue, rightValue)) {
        onBoth.put(leftKey, leftValue);
      } else {
        eq = false;
        differences.put(
            leftKey, new ValueDifferenceImpl<V>(leftValue, rightValue));
      }
    } else {
      eq = false;
      onlyOnLeft.put(leftKey, leftValue);
    }
  }

  boolean areEqual = eq && onlyOnRight.isEmpty();
  return sortedMapDifference(
      areEqual, onlyOnLeft, onlyOnRight, onBoth, differences);
}
项目:guava-libraries    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "f"), 5,
      ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=z}: "
      + "value differences={3=(c, f), 5=(e, g)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("f", "c"), 5,
      ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:guava-libraries    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
      .put(1, "a").put(2, "b").put(3, "c").put(4, "d").put(5, "e")
      .build();

  SortedMap<Integer, String> right =
      ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 =
      Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet()).containsExactly(
      Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b")).inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet()).containsExactly(
      Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
      Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f"))).inOrder();
  assertEquals("not equal: only on left={4=d, 2=b}: only on right={6=z}: "
      + "value differences={5=(e, g), 3=(c, f)}", diff1.toString());

  SortedMapDifference<Integer, String> diff2 =
      Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet()).containsExactly(
      Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d")).inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertEquals(ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:guava-libraries    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "f"), 5,
      ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=z}: "
      + "value differences={3=(c, f), 5=(e, g)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("f", "c"), 5,
      ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:guava-libraries    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
      .put(1, "a").put(2, "b").put(3, "c").put(4, "d").put(5, "e")
      .build();

  SortedMap<Integer, String> right =
      ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 =
      Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet()).containsExactly(
      Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b")).inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet()).containsExactly(
      Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
      Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f"))).inOrder();
  assertEquals("not equal: only on left={4=d, 2=b}: only on right={6=z}: "
      + "value differences={5=(e, g), 3=(c, f)}", diff1.toString());

  SortedMapDifference<Integer, String> diff2 =
      Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(
      Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet()).containsExactly(
      Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d")).inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(
      Maps.immutableEntry(1, "a"));
  assertEquals(ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=z}: only on right={2=b, 4=d}: "
      + "value differences={3=(f, c), 5=(g, e)}", diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("c", "f"), 5, ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals(
      "not equal: only on left={2=b, 4=d}: only on right={6=z}: "
          + "value differences={3=(c, f), 5=(e, g)}",
      diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"), 5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=z}: only on right={2=b, 4=d}: "
          + "value differences={3=(f, c), 5=(g, e)}",
      diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testMapDifferenceTypical() {
  Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  MapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("c", "f"), 5, ValueDifferenceImpl.create("e", "g")),
      diff1.entriesDiffering());
  assertEquals(
      "not equal: only on left={2=b, 4=d}: only on right={6=z}: "
          + "value differences={3=(c, f), 5=(e, g)}",
      diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff2.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"), 5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=z}: only on right={2=b, 4=d}: "
          + "value differences={3=(f, c), 5=(g, e)}",
      diff2.toString());
}
项目:guava-mock    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence = Equivalence.equals().onResultOf(
      new Function<String, String>() {
        @Override public String apply(String input) {
          return input.toLowerCase();
        }
      });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right,
      caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "F"), 5,
      ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
      + "value differences={3=(c, F), 5=(e, G)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left,
      caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("F", "c"), 5,
      ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
      + "value differences={3=(F, c), 5=(G, e)}", diff2.toString());
}
项目:googles-monorepo-demo    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence = Equivalence.equals().onResultOf(
      new Function<String, String>() {
        @Override public String apply(String input) {
          return input.toLowerCase();
        }
      });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right,
      caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "F"), 5,
      ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
      + "value differences={3=(c, F), 5=(e, G)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left,
      caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("F", "c"), 5,
      ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
      + "value differences={3=(F, c), 5=(G, e)}", diff2.toString());
}
项目:guava-libraries    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence = Equivalence.equals().onResultOf(
      new Function<String, String>() {
        @Override public String apply(String input) {
          return input.toLowerCase();
        }
      });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right,
      caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "F"), 5,
      ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
      + "value differences={3=(c, F), 5=(e, G)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left,
      caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("F", "c"), 5,
      ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
      + "value differences={3=(F, c), 5=(G, e)}", diff2.toString());
}
项目:guava-libraries    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(
      1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(
      1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence = Equivalence.equals().onResultOf(
      new Function<String, String>() {
        @Override public String apply(String input) {
          return input.toLowerCase();
        }
      });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right,
      caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("c", "F"), 5,
      ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals("not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
      + "value differences={3=(c, F), 5=(e, G)}", diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left,
      caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(ImmutableMap.of(3,
      ValueDifferenceImpl.create("F", "c"), 5,
      ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals("not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
      + "value differences={3=(F, c), 5=(G, e)}", diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence =
      Equivalence.equals()
          .onResultOf(
              new Function<String, String>() {
                @Override
                public String apply(String input) {
                  return input.toLowerCase();
                }
              });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right, caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("c", "F"), 5, ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals(
      "not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
          + "value differences={3=(c, F), 5=(e, G)}",
      diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left, caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("F", "c"), 5, ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
          + "value differences={3=(F, c), 5=(G, e)}",
      diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
          .put(1, "a")
          .put(2, "b")
          .put(3, "c")
          .put(4, "d")
          .put(5, "e")
          .build();

  SortedMap<Integer, String> right = ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet())
      .containsExactly(Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b"))
      .inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet())
      .containsExactly(
          Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
          Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f")))
      .inOrder();
  assertEquals(
      "not equal: only on left={4=d, 2=b}: only on right={6=z}: "
          + "value differences={5=(e, g), 3=(c, f)}",
      diff1.toString());

  SortedMapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet())
      .containsExactly(Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d"))
      .inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(Maps.immutableEntry(1, "a"));
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=z}: only on right={2=b, 4=d}: "
          + "value differences={3=(f, c), 5=(g, e)}",
      diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testMapDifferencePredicateTypical() {
  Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c", 4, "d", 5, "e");
  Map<Integer, String> right = ImmutableMap.of(1, "A", 3, "F", 5, "G", 6, "Z");

  // TODO(kevinb): replace with Ascii.caseInsensitiveEquivalence() when it
  // exists
  Equivalence<String> caseInsensitiveEquivalence =
      Equivalence.equals()
          .onResultOf(
              new Function<String, String>() {
                @Override
                public String apply(String input) {
                  return input.toLowerCase();
                }
              });

  MapDifference<Integer, String> diff1 = Maps.difference(left, right, caseInsensitiveEquivalence);
  assertFalse(diff1.areEqual());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff1.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(6, "Z"), diff1.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "a"), diff1.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("c", "F"), 5, ValueDifferenceImpl.create("e", "G")),
      diff1.entriesDiffering());
  assertEquals(
      "not equal: only on left={2=b, 4=d}: only on right={6=Z}: "
          + "value differences={3=(c, F), 5=(e, G)}",
      diff1.toString());

  MapDifference<Integer, String> diff2 = Maps.difference(right, left, caseInsensitiveEquivalence);
  assertFalse(diff2.areEqual());
  assertEquals(ImmutableMap.of(6, "Z"), diff2.entriesOnlyOnLeft());
  assertEquals(ImmutableMap.of(2, "b", 4, "d"), diff2.entriesOnlyOnRight());
  assertEquals(ImmutableMap.of(1, "A"), diff2.entriesInCommon());
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("F", "c"), 5, ValueDifferenceImpl.create("G", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=Z}: only on right={2=b, 4=d}: "
          + "value differences={3=(F, c), 5=(G, e)}",
      diff2.toString());
}
项目:guava    文件:MapsTest.java   
public void testSortedMapDifferenceTypical() {
  SortedMap<Integer, String> left =
      ImmutableSortedMap.<Integer, String>reverseOrder()
          .put(1, "a")
          .put(2, "b")
          .put(3, "c")
          .put(4, "d")
          .put(5, "e")
          .build();

  SortedMap<Integer, String> right = ImmutableSortedMap.of(1, "a", 3, "f", 5, "g", 6, "z");

  SortedMapDifference<Integer, String> diff1 = Maps.difference(left, right);
  assertFalse(diff1.areEqual());
  assertThat(diff1.entriesOnlyOnLeft().entrySet())
      .containsExactly(Maps.immutableEntry(4, "d"), Maps.immutableEntry(2, "b"))
      .inOrder();
  assertThat(diff1.entriesOnlyOnRight().entrySet()).contains(Maps.immutableEntry(6, "z"));
  assertThat(diff1.entriesInCommon().entrySet()).contains(Maps.immutableEntry(1, "a"));
  assertThat(diff1.entriesDiffering().entrySet())
      .containsExactly(
          Maps.immutableEntry(5, ValueDifferenceImpl.create("e", "g")),
          Maps.immutableEntry(3, ValueDifferenceImpl.create("c", "f")))
      .inOrder();
  assertEquals(
      "not equal: only on left={4=d, 2=b}: only on right={6=z}: "
          + "value differences={5=(e, g), 3=(c, f)}",
      diff1.toString());

  SortedMapDifference<Integer, String> diff2 = Maps.difference(right, left);
  assertFalse(diff2.areEqual());
  assertThat(diff2.entriesOnlyOnLeft().entrySet()).contains(Maps.immutableEntry(6, "z"));
  assertThat(diff2.entriesOnlyOnRight().entrySet())
      .containsExactly(Maps.immutableEntry(2, "b"), Maps.immutableEntry(4, "d"))
      .inOrder();
  assertThat(diff1.entriesInCommon().entrySet()).contains(Maps.immutableEntry(1, "a"));
  assertEquals(
      ImmutableMap.of(
          3, ValueDifferenceImpl.create("f", "c"),
          5, ValueDifferenceImpl.create("g", "e")),
      diff2.entriesDiffering());
  assertEquals(
      "not equal: only on left={6=z}: only on right={2=b, 4=d}: "
          + "value differences={3=(f, c), 5=(g, e)}",
      diff2.toString());
}