@Override
  public boolean remove(Object k, Object v) {
    return mInternalMap.remove(new IdentityObject<>(k), v);
  }
@Test
  public void remove() {
    String x = new String("x");
    String x2 = new String("x");
    assertNull(mMap.put(x, "y"));
    assertEquals(1, mMap.size());
    assertNull(mMap.remove(x2));
    assertEquals(1, mMap.size());
    assertEquals("y", mMap.remove(x));
    assertEquals(0, mMap.size());
    assertNull(mMap.put(x2, "z"));
    assertEquals(1, mMap.size());
    assertFalse(mMap.remove(x2, "a"));
    assertTrue(mMap.remove(x2, "z"));
    assertEquals(0, mMap.size());
  }