public synchronized void add(T node) {
        add(node, defaultReplication);
    }
@Test
    public void usesCustomHash() {
        final RuntimeException exception = new RuntimeException();
        ConsistentHash.Hash<String> hashFunction = str -> {
            throw exception;
        };

        ConsistentHash<String> hash = new ConsistentHash<>(hashFunction);
        final RuntimeException e = assertThrows(RuntimeException.class, () -> hash.add("foo"));
        assertSame(exception, e);
    }