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)); }
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)); }
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); }
/// <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); }
/// <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(); }