public void RandomBitsShouldHaveLeadingZeroBits(int leadingOneBits, int numberOfBits)
        {
            var count = 100; // arbitrary

            for (var i = 0; i < count; i++)
            {
                _subject = new EntropyProviderLeadingOnes(new Random800_90(), leadingOneBits);
                var result = _subject.GetEntropy(numberOfBits);

                var expectedBitString = new BitString(leadingOneBits);
                for (var j = 0; j < leadingOneBits; j++)
                {
                    expectedBitString.Bits[j] = true;
                }

                Assert.AreEqual(expectedBitString.ToHex(), result.GetMostSignificantBits(leadingOneBits).ToHex());
            }
        }
 public void ShouldThrowWhenAttemptingToPullLessBitsThanLeadingZeroBits(int leadingOneBits, int numberOfBits)
 {
     _subject = new EntropyProviderLeadingOnes(new Random800_90(), leadingOneBits);
     Assert.Throws <ArgumentOutOfRangeException>(() => _subject.GetEntropy(numberOfBits));
 }