public void PerformanceTest(long n)
        {
            ISelfDescribingFinder finderLinear = new LinearSelfDescribingNumberFinder();
            ISelfDescribingFinder finderSimple = new SimpleSelfDescribingNumberfinder();

            var swSimple = new Stopwatch();
            var swLinear = new Stopwatch();

            finderLinear.Test(n);
            finderSimple.Test(n);

            swSimple.Start();
            finderSimple.Test(n);
            swSimple.Stop();

            swLinear.Start();
            finderLinear.Test(n);
            swLinear.Stop();

            Assert.IsTrue(swLinear.Elapsed < swSimple.Elapsed, "The simple implementation is faster. wtf?");
        }
        public void ValidTestForLinearSelfDescribingNumber(long n)
        {
            ISelfDescribingFinder finder = new LinearSelfDescribingNumberFinder();

            Assert.IsTrue(finder.Test(n), "Not a self describing number.");
        }
        public void InvalidTestForLinearSelfDescribingNumber(long n)
        {
            ISelfDescribingFinder finder = new LinearSelfDescribingNumberFinder();

            Assert.IsFalse(finder.Test(n), "A self describing number was passed to me, a negative test.");
        }