public void Comparisons1()
        {
            // arrange
            var a = new Rational.Rational(1, 3);
            var b = new Rational.Rational(1, 2);
            var c = new Rational.Rational(2, 4);

            // assert
            Assert.True(a < b);
            Assert.True(a < c);
            Assert.False(a > b);
            Assert.False(a > c);

            Assert.False(b < a);
            Assert.False(c < a);
            Assert.True(b > a);
            Assert.True(c > a);

            Assert.True(a <= b);
            Assert.True(a <= c);
            Assert.False(a >= b);
            Assert.False(a >= c);

            Assert.False(b <= a);
            Assert.False(c <= a);
            Assert.True(b >= a);
            Assert.True(c >= a);

            Assert.True(b <= c);
            Assert.True(b >= c);
            Assert.True(c <= b);
            Assert.True(c >= b);
        }
        public void Equality2()
        {
            // arrange
            var p = new Rational.Rational(1, 2);
            var q = new Rational.Rational(-1, 2);

            // assert
            Assert.False(p == q);
        }
        public void GetHashCode_Different()
        {
            // arrange
            var p = new Rational.Rational(4, 2);
            var q = new Rational.Rational(-2, 1);

            // assert
            Assert.NotEqual(p.GetHashCode(), q.GetHashCode());
        }
        public void GetHashCode_Same()
        {
            // arrange
            var p = new Rational.Rational(4, -2);
            var q = new Rational.Rational(-2, 1);

            // assert
            Assert.Equal(p.GetHashCode(), q.GetHashCode());
        }
        public void Equals1()
        {
            // arrange
            var       p = new Rational.Rational(4, 2);
            const int q = 2;

            // assert
            Assert.True(p.Equals(q));
        }
        public void Equals3()
        {
            // arrange
            var p = new Rational.Rational(4, 2);
            var q = new Rational.Rational(3, 2);

            // assert
            Assert.False(p.Equals(q));
        }
        public void Equality6()
        {
            // arrange
            var       p = new Rational.Rational(4, 2);
            const int q = 2;

            // assert
            Assert.True(p == q);
        }
        public void Equality5()
        {
            // arrange
            var p = new Rational.Rational(2, 3);
            var q = new Rational.Rational(2, 4);

            // assert
            Assert.False(p == q);
        }
        public void Equality3()
        {
            // arrange
            var p = new Rational.Rational(1, 2);
            var q = new Rational.Rational(2, 4);

            // assert
            Assert.True(p == q);
        }
        public void Equality4()
        {
            // arrange
            var p = new Rational.Rational(0, 1);
            var q = new Rational.Rational(0, 5);

            // assert
            Assert.True(p == q);
        }
        public void Equals2()
        {
            // arrange
            var          p = new Rational.Rational(4, 2);
            const string q = "hello";

            // assert
            // ReSharper disable once SuspiciousTypeConversion.Global
            Assert.False(p.Equals(q));
        }
Пример #12
0
        public void Absolute5()
        {
            // arrange
            var p = new Rational.Rational(0, 10);

            // action
            var q = -p;

            // assert
            Assert.Equal(p, Rational.Rational.Abs(q));
        }
Пример #13
0
        public void Absolute4()
        {
            // arrange
            var p = new Rational.Rational(-1, -2);

            // action
            var q = -p;

            // assert
            Assert.Equal((Rational.Rational) 1 / 2, Rational.Rational.Abs(q));
        }
Пример #14
0
        public void ImplicitConversion_Zero()
        {
            // arrange
            const int n = 0;

            // action
            Rational.Rational rational = n;

            // assert
            Assert.Equal(Rational.Rational.Zero, rational);
        }
Пример #15
0
        public void Negation4()
        {
            // arrange
            var p = new Rational.Rational(-1, -2);

            // action
            var q = -p;

            // assert
            Assert.Equal(-(Rational.Rational) 1 / 2, q);
        }
Пример #16
0
        public void Negation5()
        {
            // arrange
            var p = new Rational.Rational(0, 10);

            // action
            var q = -p;

            // assert
            Assert.Equal(p, q);
        }
        public void ToFloat2()
        {
            // arrange
            var         rational = new Rational.Rational(9283179832312321307, 7283179832312121317);
            const float d        = 1.274605329821339747580867376182701966618626893951518748813482f;

            // action
            var converted = (float)rational;

            // assert
            Assert.Equal(d, converted, FloatPrecision);
        }
        public void ToDouble2()
        {
            // arrange
            var          rational = new Rational.Rational(9283179832312321307, 7283179832312121317);
            const double d        = 1.274605329821339747580867376182701966618626893951518748813482d;

            // action
            var converted = (double)rational;

            // assert
            Assert.Equal(d, converted, DoublePrecision);
        }
        public void ToDecimal2()
        {
            // arrange
            var           rational = new Rational.Rational(9283179832312321307, 7283179832312121317);
            const decimal d        = 1.274605329821339747580867376182701966618626893951518748813482M;

            // action
            var converted = (decimal)rational;

            // assert
            Assert.Equal(d, converted);
        }
        public void CanonicalForm()
        {
            // arrange
            var rational = new Rational.Rational(2, 4);

            // action
            var canonical = rational.CanonicalForm;

            // assert
            Assert.Equal(new BigInteger(1), canonical.Numerator);
            Assert.Equal(new BigInteger(2), canonical.Denominator);
        }
        public void CanonicalForm_Irreducible()
        {
            // arrange
            var rational = new Rational.Rational(4, 3);

            // action
            var canonical = rational.CanonicalForm;

            // assert
            Assert.Equal(new BigInteger(4), canonical.Numerator);
            Assert.Equal(new BigInteger(3), canonical.Denominator);
        }
Пример #22
0
        public void ImplicitConversion()
        {
            // arrange
            const int n = 25;

            // action
            Rational.Rational rational = n;

            // assert
            Assert.Equal(new BigInteger(25), rational.Numerator);
            Assert.Equal(new BigInteger(1), rational.Denominator);
        }
        public void ToFloat3()
        {
            // arrange
            var rational = new Rational.Rational(BigInteger.Parse("999999999999999999999999999999"),
                                                 BigInteger.Parse("100000000000000000000000000000"));
            const float d = 9.99999999999999999999999999999f;

            // action
            var converted = (float)rational;

            // assert
            Assert.Equal(d, converted, FloatPrecision);
        }
        public void ToDouble3()
        {
            // arrange
            var rational = new Rational.Rational(BigInteger.Parse("999999999999999999999999999999"),
                                                 BigInteger.Parse("100000000000000000000000000000"));
            const double d = 9.99999999999999999999999999999d;

            // action
            var converted = (double)rational;

            // assert
            Assert.Equal(d, converted, DoublePrecision);
        }
        public void ToDecimal3()
        {
            // arrange
            var rational = new Rational.Rational(BigInteger.Parse("999999999999999999999999999999"),
                                                 BigInteger.Parse("10000000000000000000000000000"));
            const decimal d = 99.9999999999999999999999999999M;

            // action
            var converted = (decimal)rational;

            // assert
            Assert.Equal(d, converted);
        }
Пример #26
0
        public void Constructor()
        {
            // arrange
            var rational = new Rational.Rational(new BigInteger(1), new BigInteger(2));

            // action
            var numerator   = rational.Numerator;
            var denominator = rational.Denominator;

            // assert
            Assert.Equal(new BigInteger(1), numerator);
            Assert.Equal(new BigInteger(2), denominator);
        }
        public void Comparisons2()
        {
            // arrange
            var a = new Rational.Rational(32);
            var b = new Rational.Rational(2, -1);

            // assert
            Assert.True(a > b);
            Assert.True(a >= b);
            Assert.False(a < b);
            Assert.False(a <= b);

            Assert.False(b > a);
            Assert.False(b >= a);
            Assert.True(b < a);
            Assert.True(b <= a);
        }