@Override
    public abstract int compare(@NonNull String id1, @NonNull String id2);
@Test
    public void testCompareCaseSensitiveEmail() {
        IdStrategy idStrategy = new IdStrategy.CaseSensitiveEmailAddress();
        assertEquals(0, idStrategy.compare("john.smith@acme.org", "john.smith@acme.org"));
        assertEquals(0, idStrategy.compare("John.Smith@acme.org", "John.Smith@acme.org"));
        assertEquals(0, idStrategy.compare("John.Smith@ACME.org", "John.Smith@acme.org"));
        assertEquals(0, idStrategy.compare("John.Smith@acme.ORG", "John.Smith@acme.org"));
        assertEquals(0, idStrategy.compare("john.smith", "john.smith"));
        assertEquals(0, idStrategy.compare("John.Smith", "John.Smith"));
        assertEquals(0, idStrategy.compare("john@smith@acme.org", "john@smith@acme.org"));
        assertEquals(0, idStrategy.compare("John@Smith@acme.org", "John@Smith@acme.org"));

        assertTrue(idStrategy.compare("John.Smith@acme.org", "john.smith@acme.org") < 0);
        assertTrue(idStrategy.compare("john.smith@acme.org", "John.Smith@acme.org") > 0);
    }