public void SpookyHashV1_Implementation_ComputeHash_HashSizeInBits_MagicallyInvalid_Throws()
        {
            var spookyHashConfigMock = new Mock <ISpookyHashConfig>();
            {
                var readCount = 0;

                spookyHashConfigMock.SetupGet(xhc => xhc.HashSizeInBits)
                .Returns(() => {
                    readCount += 1;

                    if (readCount == 1)
                    {
                        return(32);
                    }

                    return(33);
                });

                spookyHashConfigMock.Setup(xhc => xhc.Clone())
                .Returns(() => spookyHashConfigMock.Object);
            }


            var spookyHashV1 = new SpookyHashV1_Implementation(spookyHashConfigMock.Object);

            Assert.Throws <NotImplementedException>(
                () => spookyHashV1.ComputeHash(new byte[1]));

            Assert.Throws <NotImplementedException>(
                () => spookyHashV1.ComputeHash(new byte[200]));
        }
        public async Task SpookyHashV1_Implementation_ComputeHashAsync_HashSizeInBits_MagicallyInvalid_Throws()
        {
            var spookyHashConfigMock = new Mock <ISpookyHashConfig>();
            {
                var readCount = 0;

                spookyHashConfigMock.SetupGet(xhc => xhc.HashSizeInBits)
                .Returns(() => {
                    readCount += 1;

                    if (readCount == 1)
                    {
                        return(32);
                    }

                    return(33);
                });

                spookyHashConfigMock.Setup(xhc => xhc.Clone())
                .Returns(() => spookyHashConfigMock.Object);
            }


            var spookyHashV1 = new SpookyHashV1_Implementation(spookyHashConfigMock.Object);

            using (var memoryStream = new MemoryStream(new byte[1]))
            {
                await Assert.ThrowsAsync <NotImplementedException>(
                    () => spookyHashV1.ComputeHashAsync(memoryStream));
            }

            using (var memoryStream = new MemoryStream(new byte[200]))
            {
                await Assert.ThrowsAsync <NotImplementedException>(
                    () => spookyHashV1.ComputeHashAsync(memoryStream));
            }
        }