public void GreatestCommonDivisor_For_21_And_15_Is_3()
            {
                var greatestCommonDivisor = new GreatestCommonDivisor();
                var result = greatestCommonDivisor.Calculate(21, 15);

                Assert.AreEqual(3, result);
            }
Пример #2
0
        public void FindGCD_BothAreZero()
        {
            var gcdEuclidean = GreatestCommonDivisor.FindGCDEuclidean(0, 0);

            Assert.Equal(0, gcdEuclidean);

            var gcdStein = GreatestCommonDivisor.FindGCDStein(0, 0);

            Assert.Equal(0, gcdStein);
        }
Пример #3
0
        public void FindGCD_BothNumberAreNegative(int a, int b, int expected)
        {
            var gcdEuclidean = GreatestCommonDivisor.FindGCDEuclidean(a, b);

            Assert.Equal(expected, gcdEuclidean);

            var gcdStein = GreatestCommonDivisor.FindGCDStein(a, b);

            Assert.Equal(expected, gcdStein);
        }
Пример #4
0
        public void FindGCD_SecondIsZero(int a, int b, int expected)
        {
            var gcdEuclidean = GreatestCommonDivisor.FindGCDEuclidean(a, b);

            Assert.Equal(expected, gcdEuclidean);

            var gcdStein = GreatestCommonDivisor.FindGCDStein(a, b);

            Assert.Equal(expected, gcdStein);
        }
        public GcdResult Calculate(int[] numbers)
        {
            var iterationsCount = 0;
            var gcdResult       = new GcdResult
            {
                Gcd             = GreatestCommonDivisor.GCDStainAlgorithm(numbers[0], numbers[1], out iterationsCount),
                IterationsCount = iterationsCount
            };

            return(gcdResult);
        }
Пример #6
0
        public void CalculateEuclideanGCD_1068And3096_12Returned()
        {
            //arrange
            int a = 1068;
            int b = 3096;

            //act
            int result = GreatestCommonDivisor.CalculateEuclideanGCD(a, b);

            //assert
            Assert.AreEqual(12, result);
        }
Пример #7
0
        public void CalculateSteinGCD_1071And462_21Returned()
        {
            //arrange
            int a = 1071;
            int b = 462;

            //act
            int result = GreatestCommonDivisor.CalculateSteinGCD(a, b);

            //assert
            Assert.AreEqual(21, result);
        }
Пример #8
0
        public static int[] DivisorRelativeRequences(int[] freq)
        {
            int maxDivisor = GreatestCommonDivisor.GetGreatestCommonDivisor(freq);

            if (maxDivisor > 1)
            {
                for (int i = 0; i < freq.Length; i++)
                {
                    freq[i] /= maxDivisor;
                }
            }

            return(freq);
        }
Пример #9
0
        public void GetGCDTest()
        {
            GreatestCommonDivisor gcd = new GreatestCommonDivisor();
            int result = gcd.GetGCDbyEvclideAl(15, 0);

            Assert.AreEqual(result, 15);
            result = gcd.GetGCDbyEvclideAl(15, -5);
            Assert.AreEqual(result, 5);

            result = gcd.GetGCDSteinAl(15, 0);
            Assert.AreEqual(result, 15);
            result = gcd.GetGCDSteinAl(15, -5);
            Assert.AreEqual(result, 5);
        }
        public GcdResult Calculate(int[] numbers)
        {
            var iterationsCount = 0;
            var gcdResult       = new GcdResult();

            if (numbers.Length == 5)
            {
                gcdResult.Gcd = GreatestCommonDivisor.GCDEuclideanAlgorithm(numbers[0], numbers[1], numbers[2], numbers[3], numbers[4]);
            }
            if (numbers.Length == 4)
            {
                gcdResult.Gcd = GreatestCommonDivisor.GCDEuclideanAlgorithm(numbers[0], numbers[1], numbers[2], numbers[3]);
            }
            if (numbers.Length == 3)
            {
                gcdResult.Gcd = GreatestCommonDivisor.GCDEuclideanAlgorithm(numbers[0], numbers[1], numbers[2]);
            }
            if (numbers.Length == 2)
            {
                gcdResult.Gcd             = GreatestCommonDivisor.GCDEuclideanAlgorithm(numbers[0], numbers[1], out iterationsCount);
                gcdResult.IterationsCount = iterationsCount;
            }
            return(gcdResult);
        }
 public static void EuclidsAlgorithmTest(int expected, params int[] numbers)
 {
     Assert.AreEqual(expected, GreatestCommonDivisor.EuclidsAlgorithm(numbers));
 }
Пример #12
0
 public static void EuclidsAlgorithmTest_Numbers_ArgumentNullException(FindingDelegateGCD findingDelegateGCD, params int[] numbers)
 => Assert.Throws <ArgumentNullException>(() => GreatestCommonDivisor.EuclidMethodForFindingGCD(findingDelegateGCD, numbers));
Пример #13
0
 public static void EuclidsAlgorithmTest(FindingDelegateGCD findingDelegateGCD, int expected, int a, int b)
 {
     Assert.AreEqual(expected, GreatestCommonDivisor.EuclidMethodForFindingGCD(findingDelegateGCD, a, b));
 }
Пример #14
0
 public static void EuclidsAlgorithmTest(FindingDelegateGCD findingDelegateGCD, int expected, params int[] numbers)
 {
     Assert.AreEqual(expected, GreatestCommonDivisor.EuclidMethodForFindingGCD(findingDelegateGCD, numbers));
 }
Пример #15
0
 public int EuclideanAlgorithmSimpleTest(params int[] numbers) => GreatestCommonDivisor.EuclideanAlgorithm(numbers);
 public int Test(int a, int b) => GreatestCommonDivisor.Gcd(a, b);
Пример #17
0
 public void Gcd_For_NullValue_ThrowArgumentNullException()
 {
     var actual = GreatestCommonDivisor.Find(null);
 }
Пример #18
0
        public void Gcd_For_0p9_And_1p2_Is_0p3(double a, double b, double expected)
        {
            var actual = GreatestCommonDivisor.Find(a, b);

            Assert.IsTrue(Math.Abs(actual - expected) < double.Epsilon);
        }
Пример #19
0
        public void Gcd_For_Equal_Numbers_Is_Number(double a, double b, double expected)
        {
            var actual = GreatestCommonDivisor.Find(a, b);

            Assert.IsTrue(Math.Abs(actual - expected) < double.Epsilon);
        }
Пример #20
0
 public int BinaryAlgorithmSimpleTest(params int[] numbers) => GreatestCommonDivisor.BinaryAlgorithm(numbers);
Пример #21
0
 public int BinaryAlgorithmTwoArguments(int a, int b) => GreatestCommonDivisor.BinaryAlgorithm(a, b);
Пример #22
0
 public void BinaryAlgorithmArgumentException(params int[] numbers)
 {
     Assert.Throws <ArgumentException>(() => GreatestCommonDivisor.BinaryAlgorithm(numbers));
 }
Пример #23
0
 public int EuclideanAlgorithmTwoArguments(int a, int b) => GreatestCommonDivisor.EuclideanAlgorithm(a, b);
 public static void EuclidsAlgorithmTest(int expected, int a, int b)
 {
     Assert.AreEqual(expected, GreatestCommonDivisor.BinaryEuclideanAlgoritm(a, b));
 }
Пример #25
0
        public void EuclideanAlgorithm_ab_gcdReturn(int expected, int a, int b)
        {
            TimeSpan ts;

            Assert.AreEqual(expected, GreatestCommonDivisor.EuclideanAlgorithm(out ts, a, b));
        }
 public static void EuclidsAlgorithmTest_Numbers_ArgumentNullException(params int[] numbers)
 => Assert.Throws <ArgumentNullException>(() => GreatestCommonDivisor.BinaryEuclideanAlgoritm(numbers));
Пример #27
0
        public void BinaryAlgorithm_abc_gcdReturn(int expected, int a, int b, int c)
        {
            TimeSpan ts;

            Assert.AreEqual(expected, GreatestCommonDivisor.BinaryAlgorithm(out ts, a, b, c));
        }
Пример #28
0
 public void Gcd_For_ZeroItems_ThrowArgumentOutOfRangeException()
 {
     var actual = GreatestCommonDivisor.Find(new List <double>());
 }
Пример #29
0
        public void BinaryAlgorithm_params_gcdReturn(int expected, params int[] arrayValue)
        {
            TimeSpan ts;

            Assert.AreEqual(expected, GreatestCommonDivisor.BinaryAlgorithm(out ts, arrayValue));
        }
Пример #30
0
 public GreatestCommonDivisorTest()
 {
     _greatestCommonDivisor = new GreatestCommonDivisor();
 }
Пример #31
0
    /**
     * Calculates the least common multiple of two numbers
     *
     * @param int firstNumber
     * @param int secondNumber
     * @return int
     */
    public int leastCommonMultiple(int firstNumber, int secondNumber)
    {
        GreatestCommonDivisor gcd = new GreatestCommonDivisor();

        return(Math.Abs(firstNumber * secondNumber) / gcd.greatestCommonDivisor(firstNumber, secondNumber));
    }