Beispiel #1
0
        public int SteinsAlgorithmTwoNumbTest(int numOne, int numTwo)         //, out double elapsedTime)
        {
            double elapsedTime;
            var    calculator = new AlgorithmGCD(numOne, numTwo);         //,out elapsedTime);

            return(calculator.SteinsAlgorithm(numOne, numTwo, out elapsedTime));
        }
Beispiel #2
0
        /// <summary>
        /// Calculate GCD of parameters and returns the resualt or the time
        /// </summary>
        /// <param name="version"></param>
        /// <param name="parameters"></param>
        /// <param name="timeIt">
        /// In case of input true, method will return time
        /// in milliseconds to complete Euclid algorithm
        /// </param>
        /// <returns></returns>
        public long FindGCD(Algorithm version, int[] parameters, bool timeIt = false)
        {
            long         result;
            AlgorithmGCD findMethod = version switch
            {
                Algorithm.Euclid => EuclidGCD,
                Algorithm.BinaryEuclid => BinaryEuclidGCD,
                _ => throw new NotImplementedException(),
            };

            if (parameters == null)
            {
                throw new ArgumentNullException(parameters.ToString());
            }

            Stopwatch timer = new Stopwatch();

            timer.Start();
            result = findMethod(parameters);
            timer.Stop();
            if (timeIt)
            {
                return(timer.ElapsedMilliseconds);
            }

            return(result);
        }
Beispiel #3
0
        public int EuclideanAlgorithmTest(int numOne, int numTwo, int numThree, int numFour)
        {
            double elapsedTime;
            var    calculator = new AlgorithmGCD(numOne, numTwo, numThree, numFour);

            return(calculator.EuclideanAlgorithm(numOne, numTwo, numThree, numFour, out elapsedTime));
        }
Beispiel #4
0
        public int EuclideanAlgorithm_ForTwoNumb_Test(int numOne, int numTwo)
        {
            double elapsedTime;
            var    calculator = new AlgorithmGCD(numOne, numTwo);

            return(calculator.EuclideanAlgorithm(numOne, numTwo, out elapsedTime));
        }
Beispiel #5
0
 public void EuclideanMethod_DifParam_GCD_WithoutTime()
 {
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, 24), 8);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, -24), 8);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, 0), 40);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, 24, 32), 8);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, -24, 32), 8);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(40, 24, 0), 8);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(50, 25, 10, 95, -100), 5);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(50, 25, 10, 95, 100), 5);
     Assert.AreEqual(AlgorithmGCD.EuclideanMethod(50, 25, 10, 0, -100), 5);
 }
Beispiel #6
0
 public void BinEuclideanMethod_DifParam_GCD()
 {
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 0), 40);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 2), 2);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, -2), 2);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 24, 32), 8);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 24, 0), 8);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 24, -8), 8);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(40, 24, 32), 8);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(50, 25, 10, 95, 100), 5);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(50, 25, 10, 95, -100), 5);
     Assert.AreEqual(AlgorithmGCD.BinEuclideanMethod(50, 25, 10, 0, 100), 5);
 }
Beispiel #7
0
        public void GivenPrepareDataForHistogram_ForTwoParamsWhenOutIsOne()
        {
            // Arrange
            List <DataForTheGraph> dataForTheGraph    = new List <DataForTheGraph>();
            AlgorithmGCD           actualAlgorithmGCD = new AlgorithmGCD(2, 3);

            actualAlgorithmGCD.PrepareDataForTheGraph(2, 3);
            List <DataForTheGraph> actual = actualAlgorithmGCD.PrepareDataForTheGraph(2, 4);
            String numParams = "Number of Gcd parameters: " + 2;

            // Act
            dataForTheGraph.Add(new DataForTheGraph(numParams, 0, 0));
            var expectedOne = dataForTheGraph.Count;

            // Assert
            Assert.AreEqual(expectedOne, actual.Count);
        }
Beispiel #8
0
 public int GCDBinaryTestsThree(int firstNum, int secondNum, int thirdNum)
 {
     return(AlgorithmGCD.SearchViaBinary(firstNum, secondNum, thirdNum, out int mSec));
 }
Beispiel #9
0
 public int GCDTestsThree(int firstNum, int secondNum, int thirdNum)
 {
     return(AlgorithmGCD.SearchViaRemainder(firstNum, secondNum, thirdNum, out int mSec));
 }
Beispiel #10
0
 public void Null_Exc()
 {
     AlgorithmGCD.EuclideanMethod();
     AlgorithmGCD.BinEuclideanMethod();
 }
        private static int GCD(out TimeSpan runTime, AlgorithmGCD algorithm, int[] array)
        {
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();

            if (array.Length == 0)
                throw new ArgumentException("array is empty", "array");
            if (array.Length == 1)
            {
                stopWatch.Stop();
                runTime = stopWatch.Elapsed;
                return array[0];
            }
            int intermediateGCD = algorithm(out runTime, array[0], array[1]);
            for (int i = 2; i < array.Length; i++)
                intermediateGCD = algorithm(out runTime, intermediateGCD, array[i]);
            int finalGCD = intermediateGCD;

            stopWatch.Stop();
            runTime = stopWatch.Elapsed;
            return finalGCD;
        }
        private static int GCD(out TimeSpan runTime, AlgorithmGCD algorithm, int a, int b, int c)
        {
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();

            int intermediateGCD = algorithm(out runTime, a, b);
            int finalGCD = algorithm(out runTime, intermediateGCD, c);

            stopWatch.Stop();
            runTime = stopWatch.Elapsed;
            return finalGCD;
        }
        private static int GCD(out TimeSpan runTime, AlgorithmGCD algorithm, int a, int b)
        {
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();

            int result = algorithm(a, b);

            stopWatch.Stop();
            runTime = stopWatch.Elapsed;

            return result;
        }