@Test
void compareTo()
{

    assertCompareTo(0, toExtension("id", "2.0"), toExtension("id", "2.0"));
    assertCompareTo(-1, toExtension("id", "2.0"), toExtension("id", "3.0"));
    assertCompareTo(1, toExtension("id", "2.0"), toExtension("id", "1.0"));
    assertCompareTo(0, toExtension("feature", "2.0"), toExtension("id", "2.0", new ExtensionId("feature", "2.0")));
    assertCompareTo(-1, toExtension("feature", "2.0"), toExtension("id", "2.0", new ExtensionId("feature", "3.0")));
    assertCompareTo(1, toExtension("feature", "2.0"), toExtension("id", "2.0", new ExtensionId("feature", "1.0")));
    assertCompareTo(0, toExtension("id", "2.0", new ExtensionId("feature", "2.0")), toExtension("feature", "2.0"));
    assertCompareTo(-1, toExtension("id", "2.0", new ExtensionId("feature", "2.0")), toExtension("feature", "3.0"));
    assertCompareTo(1, toExtension("id", "2.0", new ExtensionId("feature", "2.0")), toExtension("feature", "1.0"));
    assertCompareTo(-1, toExtension("id", "1.0"), toExtension("id2", "1.0"));
    assertCompareTo(-1, toExtension("id", "1.0"), null);
}