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