@Test
public void testHash() {
assertEquals(590701660006484765L,
CanonicalNodeNameOrder.INSTANCE.hashCodeLong("0").longValue());
assertEquals(590700560494856554L,
CanonicalNodeNameOrder.INSTANCE.hashCodeLong("1").longValue());
assertEquals(590699460983228343L,
CanonicalNodeNameOrder.INSTANCE.hashCodeLong("2").longValue());
assertEquals(590698361471600132L,
CanonicalNodeNameOrder.INSTANCE.hashCodeLong("3").longValue());
assertEquals(287424979109030320L,
CanonicalNodeNameOrder.INSTANCE.hashCodeLong("f1").longValue());
assertEquals(1791227333405493115L, CanonicalNodeNameOrder.INSTANCE
.hashCodeLong("some-rather-large-feature-identifier").longValue());
String node1Name = "Lines.1";
String node2Name = "Points.1";
UnsignedLong node1Hash = CanonicalNodeNameOrder.INSTANCE.hashCodeLong(node1Name);
UnsignedLong node2Hash = CanonicalNodeNameOrder.INSTANCE.hashCodeLong(node2Name);
assertFalse(node1Hash.equals(node2Hash));
assertFalse(0 == CanonicalNodeNameOrder.INSTANCE.compare(node1Hash.longValue(), node1Name,
node2Hash.longValue(), node2Name));
int nameCompare = node1Name.compareTo(node2Name);
assertEquals(nameCompare,
CanonicalNodeNameOrder.INSTANCE.compare(1L, node1Name, 1L, node2Name));
for (int i = 0; i < 8; i++) {
assertTrue(CanonicalNodeNameOrder.bucket(node1Name, i) == CanonicalNodeNameOrder
.bucket(node1Hash.longValue(), i));
}
}