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)); } } } } }
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); }