public void TimeFirstHundredThousandPrimes(IPrimeGenerator generator)
        {
            var sw = new Stopwatch();
            sw.Start();

            var primes = generator.Generate().Take(100000).ToList();

            sw.Stop();
            Console.WriteLine("Time: {0}", sw.Elapsed);
        }
Exemple #2
0
        public PrimeGeneratorTests()
        {
            var services = new ServiceCollection();

            services.AddStandardPrimeGenerator();

            var provider = services.BuildServiceProvider();

            _primeGenerator = provider.GetService <IPrimeGenerator>();
        }
Exemple #3
0
        private static void TestGenerator(IPrimeGenerator generator, int testSize)
        {
            List <long> correctPrimes = PrimeGeneratorUtility.GetPrimesSimple(testSize);

            generator.Begin();
            while (generator.LastPrime < testSize)
            {
                Thread.Sleep(33);
            }
            generator.End();

            Debug.Assert(correctPrimes.Count <= generator.Primes.Count);
            for (int i = 0; i < correctPrimes.Count; i++)
            {
                Debug.Assert(correctPrimes[i] == generator.Primes[i]);
            }
        }
Exemple #4
0
        private static void UpdateOutput(IPrimeGenerator generator, int timeRemaining)
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("Remaining Time: {0}\n", timeRemaining / 1000);
            builder.AppendFormat("Primes Found: {0}\n", generator.PrimesFound);
            builder.AppendFormat("Last Prime Found: {0}", generator.LastPrime);

            string thisString = builder.ToString();

            if (mLastConsoleOutput != thisString)
            {
                Console.Clear();
                Console.WriteLine(thisString);
                mLastConsoleOutput = thisString;
            }
        }
Exemple #5
0
 public void TestInitialise()
 {
     _primeGenerator = new PrimeGenerator();
 }
 public HomeController(IPrimeGenerator primeGenerator)
 {
     _primeGenerator = primeGenerator;
 }
Exemple #7
0
 public HomeController(IPrimeGenerator primeGenerator)
 {
     _primeGenerator = primeGenerator;
 }
Exemple #8
0
 public void TestCaseSetup()
 {
     _primeGenerator = new PrimeGenerator();
     _rowCreator     = new RowCreator(_primeGenerator);
 }
Exemple #9
0
 public void TestInitialise()
 {
     _primeGenerator = new PrimeGenerator();
     _rowCreator     = new RowCreator(_primeGenerator);
 }
Exemple #10
0
        private void GenerateTable_Click(object sender, EventArgs e)
        {
            // Set the generator based on the select menu items.
            if (AlgorithmSieveOfEratosthenes.Checked)
            {
                _primeGenerator = new SieveOfEratosthenes();
            }

            List<int> primeNumbers = _primeGenerator.GeneratePrimes(_limit);

            int sizeOfTable = 0;
            bool isConversionSuccessful = Int32.TryParse(NumberOfPrimes.Text, out sizeOfTable);
            if (! isConversionSuccessful || sizeOfTable == 0)
            {
                sizeOfTable = DEFAULT_TABLE_SIZE;
            }

            // Now that we've got the requested size of the table from the user we should really check to see if that
            // size is valid. If not we'll cap it to stop a range error.
            if (sizeOfTable >= primeNumbers.Count)
            {
                sizeOfTable = primeNumbers.Count - 1;
            }

            // Grab the prime numbers that the user is interested in.
            primeNumbers = primeNumbers.GetRange(0, sizeOfTable);

            // Create the size of the data view.
            PrimeNumberView.ColumnCount = sizeOfTable;
            PrimeNumberView.RowCount = sizeOfTable;

            // Set the sizing of the cells so everything looks good.
            PrimeNumberView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;

            // Set the data contained within the view.
            int x;
            int y;

            // We'll start by setting the headers.
            for (x = 0; x < PrimeNumberView.ColumnCount; ++x)
            {
                PrimeNumberView.Columns[x].HeaderCell.Value = primeNumbers[x].ToString();
            }

            for (y = 0; y < PrimeNumberView.RowCount; ++y)
            {
                PrimeNumberView.Rows[y].HeaderCell.Value = primeNumbers[y].ToString();
            }

            // Now that the headers are set we'll do the multiplications...
            for (x = 0; x < PrimeNumberView.ColumnCount; ++x)
            {
                for (y = 0; y < PrimeNumberView.RowCount; ++y)
                {
                    String firstNumberText = PrimeNumberView.Columns[x].HeaderCell.Value as String;
                    int firstNumber = Int32.Parse(firstNumberText);

                    String secondNumberText = PrimeNumberView.Rows[y].HeaderCell.Value as String;
                    int secondNumber = Int32.Parse(secondNumberText);

                    PrimeNumberView.Rows[x].Cells[y].Value = (firstNumber * secondNumber).ToString();
                }
            }
        }
Exemple #11
0
        private void GenerateTable_Click(object sender, EventArgs e)
        {
            // Set the generator based on the select menu items.
            if (AlgorithmSieveOfEratosthenes.Checked)
            {
                _primeGenerator = new SieveOfEratosthenes();
            }

            List <int> primeNumbers = _primeGenerator.GeneratePrimes(_limit);

            int  sizeOfTable            = 0;
            bool isConversionSuccessful = Int32.TryParse(NumberOfPrimes.Text, out sizeOfTable);

            if (!isConversionSuccessful || sizeOfTable == 0)
            {
                sizeOfTable = DEFAULT_TABLE_SIZE;
            }

            // Now that we've got the requested size of the table from the user we should really check to see if that
            // size is valid. If not we'll cap it to stop a range error.
            if (sizeOfTable >= primeNumbers.Count)
            {
                sizeOfTable = primeNumbers.Count - 1;
            }

            // Grab the prime numbers that the user is interested in.
            primeNumbers = primeNumbers.GetRange(0, sizeOfTable);

            // Create the size of the data view.
            PrimeNumberView.ColumnCount = sizeOfTable;
            PrimeNumberView.RowCount    = sizeOfTable;

            // Set the sizing of the cells so everything looks good.
            PrimeNumberView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;

            // Set the data contained within the view.
            int x;
            int y;

            // We'll start by setting the headers.
            for (x = 0; x < PrimeNumberView.ColumnCount; ++x)
            {
                PrimeNumberView.Columns[x].HeaderCell.Value = primeNumbers[x].ToString();
            }

            for (y = 0; y < PrimeNumberView.RowCount; ++y)
            {
                PrimeNumberView.Rows[y].HeaderCell.Value = primeNumbers[y].ToString();
            }

            // Now that the headers are set we'll do the multiplications...
            for (x = 0; x < PrimeNumberView.ColumnCount; ++x)
            {
                for (y = 0; y < PrimeNumberView.RowCount; ++y)
                {
                    String firstNumberText = PrimeNumberView.Columns[x].HeaderCell.Value as String;
                    int    firstNumber     = Int32.Parse(firstNumberText);

                    String secondNumberText = PrimeNumberView.Rows[y].HeaderCell.Value as String;
                    int    secondNumber     = Int32.Parse(secondNumberText);

                    PrimeNumberView.Rows[x].Cells[y].Value = (firstNumber * secondNumber).ToString();
                }
            }
        }
 public NumberGenerationHub(IPrimeGenerator primeGenerator)
 {
     this.primeGenerator = primeGenerator;
 }
 public KeyGenerator(RsaKeyGenerator rsaGener, IPrimeGenerator primeGener)
 {
     this.rsaGener   = rsaGener;
     this.primeGener = primeGener;
     Status          = ProcessStatus.NotBeginning;
 }
 public ConsoleReport(IOutputFormatter outputFormatter, IPrimeGenerator primeGenerator)
 {
     _outputFormatter = outputFormatter;
     _primeGenerator  = primeGenerator;
 }
 private void CreateInstances()
 {
     _primeGenerator = new PrimeGenerator();
     _rowCreator     = new RowCreator(_primeGenerator);
     _gridCreator    = new GridCreator(_rowCreator);
 }
 public TrialDivisionFactorer(IPrimeGenerator generator)
 {
     this.generator = generator;
 }
Exemple #17
0
 public RowCreator(IPrimeGenerator primeGenerator)
 {
     _primeGenerator = primeGenerator;
 }
Exemple #18
0
 public ConsoleReport(IOutputFormatter outputFormatter, IPrimeGenerator primeGenerator)
 {
     _outputFormatter = outputFormatter;
     _primeGenerator = primeGenerator;
 }