Пример #1
0
        public void RungcdTestsSuccess(string TestFile)
        {
            List <TestData> TestSets = DataLoader.LoadData(TestFile);

            foreach (TestData TestSet in TestSets)
            {
                string AHexVal = "", ADecVal = "", BHexVal = "", BDecVal = "",
                              GHexVal = "", GDecVal = "";
                TestSet.Parameters.TryGetValue("a", out AHexVal);
                TestSet.Parameters.TryGetValue("A", out ADecVal);
                TestSet.Parameters.TryGetValue("b", out BHexVal);
                TestSet.Parameters.TryGetValue("B", out BDecVal);
                TestSet.Parameters.TryGetValue("g", out GHexVal);
                TestSet.Parameters.TryGetValue("G", out GDecVal);

                BigInt A    = new BigInt(TestSet.Size, AHexVal);
                BigInt ADec = new BigInt(TestSet.Size, ADecVal);
                BigInt B    = new BigInt(TestSet.Size, BHexVal);
                BigInt BDec = new BigInt(TestSet.Size, BDecVal);
                BigInt G    = new BigInt(TestSet.Size, GHexVal);
                BigInt GDec = new BigInt(TestSet.Size, GDecVal);

                BigInt GGcd = BigInt.Egc(A, B);       // GGcd = ggT(A, B)
                BigInt cGcd = BigInt.Egc(ADec, BDec); // gGcd = ggT(ADec, BDec)

                Assert.True(G == GGcd, $"Expected G to be equal to ggT(A, B), but got wrong value: {TestSet.Title}.");
                Assert.True(GDec == cGcd, $"Expected GDec to be equal to ggT(ADec, BDec), but got wrong value: {TestSet.Title}.");
            }
        }