Example #1
0
        void Test(ISieve sieve, long expectedCount, long expectedSum, long expectedHash)
        {
            long          count = 0, sum = 0, hash = 0;
            Action <long> action = (p) => { count++; sum += p; hash = hash * 31 + p; };

            sieve.ListPrimes(action);
            Assert.AreEqual(expectedCount, count);
            Assert.AreEqual(expectedSum, sum);
            Assert.AreEqual(expectedHash, hash);
        }
Example #2
0
        static void TestSieve <T>(long length, long expectedCount, long expectedSum, long expectedHash)
        {
            var           sw = Stopwatch.StartNew();
            ISieve        sieve = CreateSieve <T>(length);
            long          count = 0, sum = 0, hash = 0;
            Action <long> action = (p) => { count++; sum += p; hash = hash * 31 + p; };

            sieve.ListPrimes(action);
            AssertEquals(expectedCount, count);
            AssertEquals(expectedSum, sum);
            AssertEquals(expectedHash, hash);
            Console.WriteLine($"{typeof(T).Name} up to {length:N0} in {sw.Elapsed}");
        }