@Override
    public boolean add(long hash) {
        final int index = (int) hash & (register.length - 1);
        final int value = Long.numberOfTrailingZeros((hash >>> p) | pFenseMask) + 1;

        assert index < register.length;
        assert value <= (1 << 8) - 1;
        assert value <= 64 - p;

        if (value > register[index]) {
            register[index] = (byte) value;
            return true;
        }

        return false;
    }
@RequireAssertEnabled
    @Test(expected = AssertionError.class)
    public void testAdd_assertRegisterLength() {
        DenseHyperLogLogEncoder encoder = new DenseHyperLogLogEncoder(precision(), new byte[0]);

        encoder.add(5);
    }