Example #1
0
        public void PathHelpers_Test2()
        {
            return;

            var hashes     = new HashSet <ulong>();
            var collisions = new List <Tuple <ulong, int, byte> >();

            var data = new byte[1048576];

            for (var lengthIdx = 0; lengthIdx < data.Length; ++lengthIdx)
            {
                if (lengthIdx % 1000 == 0)
                {
                    Console.WriteLine($"{lengthIdx / 1000} k");
                }

                for (byte byteIdx = 1; byteIdx < byte.MaxValue; ++byteIdx)
                {
                    data[lengthIdx] = byteIdx;
                    using (var str = new MemoryStream(data))
                    {
                        var h = XxHash64Unsafe.ComputeHash(str);
                        if (!hashes.Add(h))
                        {
                            Console.WriteLine("Collision found");
                            collisions.Add(Tuple.Create(h, lengthIdx, byteIdx));
                        }
                    }
                }
            }
        }
Example #2
0
        public void TestXxHashReturnsCorrectValue()
        {
            byte[] data =
            {
                0x60, 0x82, 0x40, 0x77, 0x8a, 0x0e, 0xe4, 0xd5,
                0x85, 0x1f, 0xa6, 0x86, 0x34, 0x01, 0xd7, 0xf2,
                0x30, 0x5d, 0x84, 0x54, 0x15, 0xf9, 0xbd, 0x03,
                0x4b, 0x0f, 0x90, 0x4e, 0xf5, 0x57, 0x21, 0x21,
                0xed, 0x8c, 0x19, 0x93, 0xbd, 0x01, 0x12, 0x0c,
                0x20, 0xb0, 0x33, 0x98, 0x4b, 0xe7, 0xc1, 0x0a,
                0x27, 0x6d, 0xb3, 0x5c, 0xc7, 0xc0, 0xd0, 0xa0,
                0x7e, 0x28, 0xce, 0x46, 0x85, 0xb7, 0x2b, 0x16,
            };
            var hash = new XxHash64Unsafe().ComputeHash(data);

            Assert.AreEqual((ulong)0x4c0a65b1ef9ea060, hash);
        }