public static long[] hash128(byte[] data) {
        return hash128(data, 0, data.length, DEFAULT_SEED);
    }
@Test
    public void testMurmur3_128() {
        Map<byte[], long[]> cases = new java.util.HashMap<>();
        cases.put("21".getBytes(), new long[]{5857341059704281894L, -5288187638297930763L});
        cases.put("foobar".getBytes(), new long[]{-351361463397418609L, 8959716011862540668L});
        cases.put("a-little-bit-long-string".getBytes(), new long[]{8836256500583638442L, -198172363548498523L});
        cases.put("a-little-bit-longer-string".getBytes(), new long[]{1838346159335108511L, 8794688210320490705L});
        cases.put("lkjh234lh9fiuh90y23oiuhsafujhadof229phr9h19h89h8".getBytes(), new long[]{-4024021876037397259L, -1482317706335141238L});
        cases.put(new byte[]{'a', 'b', 'c'}, new long[]{1489494923063836066L, -5440978547625122829L});

        int seed = 123;

        for (Map.Entry c : cases.entrySet()) {
            byte[] b = (byte[]) c.getKey();
            long[] result = Murmur3.hash128(b, 0, b.length, seed);
            assertArrayEquals((long[]) c.getValue(), result);
        }
    }