public static long hash64(Object o) {
        if (o == null) {
            return 0l;
        } else if (o instanceof String) {
            final byte[] bytes = ((String) o).getBytes();
            return hash64(bytes, bytes.length);
        } else if (o instanceof byte[]) {
            final byte[] bytes = (byte[]) o;
            return hash64(bytes, bytes.length);
        }
        return hash64(o.toString());
    }
@Test
    public void testHash64() throws Exception {
        final long actualHash = MurmurHash.hash64("hashthis");
        final long expectedHash = -8896273065425798843L;

        assertEquals("MurmurHash.hash64(String) returns wrong hash value", expectedHash, actualHash);
    }