public void PrimesTest2()
        {
            IEnumerable <long> expected = new long[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 };
            IEnumerable <long> actual   = SpecializedSets.Primes(31);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void FactorialsTest()
        {
            IEnumerable <long> expected = new long[] { 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800 };
            IEnumerable <long> actual   = SpecializedSets.Factorials().ToArray().Take(10); //Force calculating all (19) factorials

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void FibsTest()
        {
            IEnumerable <long> expected = new long[] { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
            IEnumerable <long> actual   = SpecializedSets.Fibs().ToArray().Take(10); //Force calculating all (90) fibs

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void IsPrimeTest()
        {
            long input    = 1;
            bool expected = false;
            bool actual   = SpecializedSets.IsPrime(input);

            Assert.IsTrue(actual == expected);
        }
        public void ToDigitsTest()
        {
            long input = 12345678;
            IEnumerable <int> expected = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            IEnumerable <int> actual   = SpecializedSets.ToDigits(input);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void ToNumberTest()
        {
            int[] digits   = new int[] { 1, 2, 3, 4, 5, 6 };
            long  expected = 654321;
            long  actual   = SpecializedSets.ToNumber(digits);

            Assert.IsTrue(expected == actual);
        }
        public void SumOfDigitsTest2()
        {
            long value    = 123456;
            long expected = 21;
            int  actual   = SpecializedSets.SumOfDigits(value);

            Assert.IsTrue(expected == actual);
        }
        public void IsPromeTest()
        {
            bool actual;

            actual = SpecializedSets.IsPrime(1);
            Assert.IsFalse(actual);

            actual = SpecializedSets.IsPrime(2);
            Assert.IsTrue(actual);

            actual = SpecializedSets.IsPrime(3);
            Assert.IsTrue(actual);

            actual = SpecializedSets.IsPrime(4);
            Assert.IsFalse(actual);
        }
        public void DivisorsTest()
        {
            IEnumerable <long> expected;
            IEnumerable <long> actual;

            expected = new long[] { 1, 2, 2823439, 5646878 };
            actual   = SpecializedSets.Divisors(5646878).OrderBy(x => x);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 1, 3, 7, 9, 21, 63, 89633, 268899, 627431, 806697, 1882293, 5646879 };
            actual   = SpecializedSets.Divisors(5646879).OrderBy(x => x);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 1, 3, 9, 19, 57, 171, 3829603, 11488809, 34466427, 72762457, 218287371, 654862113 };
            actual   = SpecializedSets.Divisors(654862113).OrderBy(x => x);
            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void PrimeFactorsTest()
        {
            IEnumerable <long> expected;
            IEnumerable <long> actual;

            expected = new long[] { 233, 577, 4871 };
            actual   = SpecializedSets.PrimeFactors(654862111);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 2, 37, 553093 };
            actual   = SpecializedSets.PrimeFactors(654862112);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 2, 3, 11, 17 };
            actual   = SpecializedSets.PrimeFactors(57222);
            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void PrimeDivisorsTest()
        {
            IEnumerable <long> expected;
            IEnumerable <long> actual;

            expected = new long[] { 233, 577, 4871 };
            actual   = SpecializedSets.PrimeDivisors(654862111);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 2, 2, 2, 2, 2, 37, 553093 };
            actual   = SpecializedSets.PrimeDivisors(654862112);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 3, 31, 101, 697181 };
            actual   = SpecializedSets.PrimeDivisors(6548621133);
            Assert.IsTrue(expected.SequenceEqual(actual));

            expected = new long[] { 2, 1429, 229133 };
            actual   = SpecializedSets.PrimeDivisors(654862114);
            Assert.IsTrue(expected.SequenceEqual(actual));
        }