@Override
  public final void isEqualTo(@Nullable Object other) {
    if (Objects.equal(actual, other)) {
      return;
    }

    // Fail but with a more descriptive message:

    if (actual == null || !(other instanceof Map)) {
      super.isEqualTo(other);
      return;
    }

    containsEntriesInAnyOrder((Map<?, ?>) other, /* allowUnexpected= */ false);
  }
@Test
  public void isEqualToNotConsistentWithEquals() {
    TreeMap<String, Integer> actual = new TreeMap<>(CASE_INSENSITIVE_ORDER);
    TreeMap<String, Integer> expected = new TreeMap<>(CASE_INSENSITIVE_ORDER);
    actual.put("one", 1);
    expected.put("ONE", 1);
    /*
     * Our contract doesn't guarantee that the following test will pass. It *currently* does,
     * though, and if we change that behavior, we want this test to let us know.
     */
    assertThat(actual).isEqualTo(expected);
  }