Пример #1
0
        public void Run()
        {
            MyFrac fraction1 = Fraction(5, 4);
            MyFrac fraction2 = Fraction(-1, 2);
            MyFrac fraction3 = Fraction(-5);

            Console.WriteLine("Expected for double conversion: 1.25");
            Console.WriteLine("Actual: " + (double)fraction1);

            Console.WriteLine("\nExpected for string representation: 5/4");
            Console.WriteLine("Actual: " + fraction1);

            Console.WriteLine("\nExpected for string with Integer part representation: (1+1/4)");
            Console.WriteLine("Actual: " + fraction1.ToStringWithIntegerPart());
            Console.WriteLine("\nExpected for string with Integer part representation: -5");
            Console.WriteLine("Actual: " + fraction3.ToStringWithIntegerPart());

            Console.WriteLine("\nExpected for negation: -5/4");
            Console.WriteLine("Actual: " + -fraction1);
            Console.WriteLine("\nExpected for addition: 3/4");
            Console.WriteLine("Actual: " + (fraction1 + fraction2));
            Console.WriteLine("\nExpected for subtraction: 7/4");
            Console.WriteLine("Actual: " + (fraction1 - fraction2));
            Console.WriteLine("\nExpected for multiplication: -5/8");
            Console.WriteLine("Actual: " + fraction1 * fraction2);
            Console.WriteLine("\nExpected for division: -5/2");
            Console.WriteLine("Actual: " + fraction1 / fraction2);

            Console.WriteLine("\nExpected for Sum1: 10/11");
            Console.WriteLine("Actual: " + CalcSum1(10));
            Console.WriteLine("\nExpected for Sum2: 11/20");
            Console.WriteLine("Actual: " + CalcSum2(10));
        }
Пример #2
0
        public void TestDivZeroFrac()
        {
            MyFrac a = new MyFrac(1, 2);
            MyFrac b = new MyFrac();

            Assert.Throws <DivideByZeroException>(() => a.Divide(b));
        }
Пример #3
0
        public void TestToStringFrac()
        {
            MyFrac a = new MyFrac(1, 2);

            Assert.Equal("1/2", a.ToString());
            MyFrac b = new MyFrac(1, -2);

            Assert.Equal("-1/2", b.ToString());
        }
Пример #4
0
        public void Operation_Substract_MyFrac_With_MyFrac_Difference_Returned()
        {
            MyFrac f1 = new MyFrac(3, 2);
            MyFrac f2 = new MyFrac(7, 3);

            MyFrac actualResult = f1 - f2;

            Assert.AreEqual("-5/6", actualResult.ToString());
        }
Пример #5
0
        public void Operation_Multiply_MyFrac_By_MyFrac_Product_Returned()
        {
            MyFrac f1 = new MyFrac(3, 2);
            MyFrac f2 = new MyFrac(4, 3);

            MyFrac actualResult = f1 * f2;

            Assert.AreEqual("2/1", actualResult.ToString());
        }
Пример #6
0
        public void Operation_Divide_MyFrac_By_MyFrac_DivisionResult_Returned()
        {
            MyFrac f1 = new MyFrac(3, 2);
            MyFrac f2 = new MyFrac(2, 5);

            MyFrac actualResult = f1 / f2;

            Assert.AreEqual("15/4", actualResult.ToString());
        }
Пример #7
0
        public void Operation_Add_MyFrac_To_MyFrac_Sum_Returned()
        {
            MyFrac f1 = new MyFrac(3, 2);
            MyFrac f2 = new MyFrac(6, 3);

            MyFrac actualResult = f1 + f2;

            Assert.AreEqual("7/2", actualResult.ToString());
        }
Пример #8
0
        public void TestAddFrac()
        {
            MyFrac f1  = new MyFrac(1, 2);
            MyFrac f2  = new MyFrac(3, 4);
            var    sum = f1 + f2;

            Assert.True(sum == f1.Add(f2));
            Assert.True(sum.Num == 5);
            Assert.True(sum.Denom == 4);
        }
Пример #9
0
        public void TestMulFrac()
        {
            MyFrac f1   = new MyFrac(1, 2);
            MyFrac f2   = new MyFrac(3, 4);
            var    prod = f1 * f2;

            Assert.True(prod == f1.Multiply(f2));
            Assert.True(prod.Num == 3);
            Assert.True(prod.Denom == 8);
        }
Пример #10
0
        public void TestSubFrac()
        {
            MyFrac f1   = new MyFrac(1, 2);
            MyFrac f2   = new MyFrac(3, 4);
            var    diff = f1 - f2;

            Assert.True(diff == f1.Subtract(f2));
            Assert.True(diff.Num == -1);
            Assert.True(diff.Denom == 4);
        }
Пример #11
0
        public void TestDivFrac()
        {
            MyFrac f1   = new MyFrac(1, 2);
            MyFrac f2   = new MyFrac(3, -4);
            var    quot = f1 / f2;

            Assert.True(quot == f1.Divide(f2));
            Assert.True(quot.Num == -2);
            Assert.True(quot.Denom == 3);
        }
Пример #12
0
        private static void ExecuteFractionOptions(ref MyFrac fraction)
        {
            bool executeOptions = true;

            do
            {
                Write("Enter the option: ");
                switch (ReadLine())
                {
                case "1":
                    WriteLine(MyFrac.ToStringWithIntegerPart(fraction));
                    break;

                case "2":
                    WriteLine(MyFrac.GetDoubleValue(fraction));
                    break;

                case "3":
                    fraction += GetInputFraction();
                    WriteLine($"result: {fraction}");
                    break;

                case "4":
                    fraction -= GetInputFraction();
                    WriteLine($"result: {fraction}");
                    break;

                case "5":
                    fraction *= GetInputFraction();
                    WriteLine($"result: {fraction}");
                    break;

                case "6":
                    fraction /= GetInputFraction();
                    WriteLine($"result: {fraction}");
                    break;

                case "7":
                    WriteLine(MyFrac.GetRGR113LeftSum(GetInputNumber()).ToString());
                    break;

                case "8":
                    WriteLine(MyFrac.GetRGR115LeftSum(GetInputNumber()).ToString());
                    break;

                case "9":
                    fraction = GetInputFraction();
                    break;

                default:
                    executeOptions = false;
                    break;
                }
            } while (executeOptions);
        }
Пример #13
0
        private static MyFrac CalcSum2(int n)
        {
            MyFrac product = Fraction(1);

            for (int i = 2; i <= n; ++i)
            {
                product *= Fraction(1) - Fraction(1, (long)Math.Pow(i, 2));
            }

            return(product);
        }
Пример #14
0
        private static MyFrac CalcSum1(int n)
        {
            MyFrac sum = Fraction(0);

            for (int i = 1; i <= n; ++i)
            {
                sum += Fraction(1, i * (i + 1));
            }

            return(sum);
        }
Пример #15
0
        public void TestNullFrac()
        {
            MyFrac a = new MyFrac(1, 2);

            Assert.False(a == null);
            Assert.NotNull(a);
            Assert.False(((object)a).Equals(null));
            MyFrac b = null;

            Assert.Null(b);
            Assert.True(b == null);
            Assert.True(b is null);
            Assert.Throws <NullReferenceException>(() => b.Equals((object)null));
        }
Пример #16
0
        private static void Main(string[] _)
        {
            WriteLine("Choose option:");
            WriteLine("1. Show MyMatrix class options");
            WriteLine("2. Show MyFrac class options");
            WriteLine("Enter any other key to exit...");
            switch (ReadLine())
            {
            case "1":
                MyMatrix matrix = GetInputMatrix();
                ShowMatrixOptions();
                ExecuteMatrixOptions(ref matrix);
                break;

            case "2":
                MyFrac fraction = GetInputFraction();
                ShowFractionOptions();
                ExecuteFractionOptions(ref fraction);
                break;
            }
        }