示例#1
0
        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);
        }
示例#2
0
        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));
        }