public void Should_return_8_bytes() { var data = new byte[] { 0, 1, 2, }; var hasher = WyHash64.Create(42); var result = hasher.ComputeHash(data); result.Length.ShouldBe(8); // 64 bits/8 bytes hasher.HashSize.ShouldBe(64); }
public void Different_overloads_returns_the_same(int length, int randomSeed) { var rand = new Random(randomSeed); var data = new byte[length]; rand.NextBytes(data); Assert.Equal(WyHash64.ComputeHash64(data), WyHash64.ComputeHash64(data.AsSpan())); var hashAlgorithm = WyHash64.Create(); Span <byte> hashBlock = stackalloc byte[hashAlgorithm.HashSize / 8]; hashAlgorithm.TryComputeHash(data.AsSpan(), hashBlock, out int bytesWritten); Assert.Equal(hashBlock.Length, hashBlock.Length); Assert.Equal(BinaryPrimitives.ReadUInt64LittleEndian(hashBlock), WyHash64.ComputeHash64(data, 0)); }