Ejemplo n.º 1
0
        public void GetHashCode_returns_hash_of_simplified_fraction(Fraction sut,
                                                                    ISimplifiesFraction simplifier,
                                                                    long integer,
                                                                    long numerator,
                                                                    long denominator,
                                                                    bool negative)
        {
            Fraction.Simplifier = simplifier;
            var expected = new Fraction(integer, numerator, denominator, negative);

            Mock.Get(simplifier).Setup(x => x.Simplify(sut, false)).Returns(expected);

            int expectedHashCode;

            // This is the expected algorithm to use, although it depends upon the runtime's mechanism
            // for getting the hash codes of the four component values.
            unchecked
            {
                expectedHashCode = (integer.GetHashCode() * 137)
                                   ^ (numerator.GetHashCode() * 137)
                                   ^ (denominator.GetHashCode() * 137)
                                   ^ (negative.GetHashCode() * 137);
            }

            Assert.That(() => sut.GetHashCode(), Is.EqualTo(expectedHashCode));
        }
Ejemplo n.º 2
0
 public void Simplify_uses_simplification_service(ISimplifiesFraction simplifier,
                                                  Fraction fraction,
                                                  Fraction expected)
 {
     Fraction.Simplifier = simplifier;
     Mock.Get(simplifier).Setup(x => x.Simplify(It.IsAny <Fraction>(), It.IsAny <bool>())).Returns(expected);
     Assert.That(() => fraction.Simplify(), Is.EqualTo(expected));
 }
Ejemplo n.º 3
0
 public void Simplify_passes_correct_parameters_to_service(ISimplifiesFraction simplifier,
                                                           Fraction fraction,
                                                           bool vulgar,
                                                           Fraction expected)
 {
     Fraction.Simplifier = simplifier;
     Mock.Get(simplifier).Setup(x => x.Simplify(It.IsAny <Fraction>(), It.IsAny <bool>())).Returns(expected);
     fraction.Simplify();
     Mock.Get(simplifier).Verify(x => x.Simplify(fraction, vulgar), Times.Once);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Resets the internal services which are used by the <see cref="Fraction"/> class for
 /// parsing, simplification and formatting.
 /// </summary>
 internal static void ResetServices()
 {
     Parser     = new FractionParser();
     Simplifier = new FractionSimplifier();
     Formatter  = new FractionFormatter(Simplifier);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FractionFormatter"/> class.
 /// </summary>
 /// <param name="simplifier">A service which simplifies fractions.</param>
 public FractionFormatter(ISimplifiesFraction simplifier = null)
 {
     this.simplifier = simplifier ?? new FractionSimplifier();
 }