public void Pool_GetDigestResetsCountsBySource() { var p = new EntropyPool(); var evt = EventFromBytes(_Zero16Bytes); p.Add(evt); Assert.AreEqual(p.GetCountOfBytesBySource().Count, 1); var digest = p.GetDigest(); Assert.AreEqual(p.GetCountOfBytesBySource().Count, 0); }
public void Pool_List3InterleavedSources() { var p = new EntropyPool(); var s1 = new NullSource(); var s2 = new NullSource(); var s3 = new NullSource(); var e1 = new EntropyEvent(_Zero16Bytes, s1); var e2 = new EntropyEvent(_Zero16Bytes, s2); var e3 = new EntropyEvent(_Zero16Bytes, s3); using (var sw = new StreamWriter("pool_3interleaved.txt", false, Encoding.UTF8)) { sw.WriteLine($"Total: Source 1 : Source 2 : Source 3"); for (int i = 0; i < 10000; i++) { if (i % 3 == 0) { p.Add(e1); } else if (i % 3 == 1) { p.Add(e2); } else { p.Add(e3); } var counts = p.GetCountOfBytesBySource(); if (counts.Count == 3) { sw.WriteLine($"{p.EntropyBytesSinceLastDigest} :{counts[s1]:N0} :{counts[s2]:N0} :{counts[s3]:N0}"); } } } }