public Fraction Add(Fraction fraction) { if (this.Denominator == fraction.Denominator) { return new Fraction(this.Numerator + fraction.Numerator, fraction.Denominator); } //if (this.Denominator % fraction.Denominator == 0 // || // fraction.Denominator % this.Denominator == 0) //{ // if (this.Denominator > fraction.Denominator) // { // return this.Add(new Fraction(fraction.Numerator * (this.Denominator / fraction.Denominator), this.Denominator)); // } // else // { // return fraction.Add(new Fraction(this.Numerator * (fraction.Denominator / this.Denominator), fraction.Denominator)); // } //} return new Fraction(this.Numerator * fraction.Denominator + fraction.Numerator * this.Denominator, this.Denominator * fraction.Denominator); }
public void ShouldSum_WhenDenominator1() { Fraction sum = new Fraction(1, 1).Add(new Fraction(1, 1)); Assert.AreEqual(2, sum.Numerator); }
public void ShouldReturn0_WhenAdding0() { Fraction sum = new Fraction(0, 1).Add(new Fraction(0, 1)); Assert.AreEqual(0, sum.Numerator); }
public void ShouldKeepDenominator_WhenDenominatorSame() { Fraction sum = new Fraction(1, 4).Add(new Fraction(2, 4)); Assert.AreEqual(4, sum.Denominator); }
public void ShouldExpandDenominator_WhenDenominatorsAreNotSame_Simple2() { Fraction sum = new Fraction(1, 6).Add(new Fraction(1, 2)); Assert.AreEqual(new Fraction(8, 12), sum); Assert.AreEqual(new Fraction(2, 3), sum); }
public void ShouldExpandDenominator_WhenDenominatorsAreNotSame_NoEasyDenominator() { // 1 / 2 + 1 / 3 = 5 / 6 Fraction sum = new Fraction(1, 2).Add(new Fraction(1, 3)); Assert.AreEqual(new Fraction(5, 6), sum); }
public void ShouldExpandDenominator_WhenDenominatorsAreNotSame() { var sum = new Fraction(1, 2).Add(new Fraction(1, 6)); Assert.AreEqual(new Fraction(2,3), sum); }
public void Should_Reduce_When_LargerDenominator() { Assert.Inconclusive(); var f = new Fraction(4, 8); Assert.AreEqual(new Fraction(1, 2), f); }
public void NegativeNumerators_Should() { Fraction sum = new Fraction(-1, 1).Add(new Fraction(1, 1)); Assert.AreEqual(new Fraction(0, 1), sum); }
public void Should_ReturnReduced_WhenPossible() { // 3/3 + 4/4 = 2/1 and not 24/12 whole numbers, expressed as fraction Fraction sum = new Fraction(3, 3).Add(new Fraction(4, 4)); Assert.AreEqual(new Fraction(2, 1), sum); }
public void Should_ReturnNumber_When_PassingComplexFractions() { // 7/3 + 4/5 = 47/15 complex example, no simplification Fraction sum = new Fraction(7, 3).Add(new Fraction(4, 5)); Assert.AreEqual(new Fraction(47, 15), sum); }
public void Should_Reduce_When_PassingPotential() { Assert.Inconclusive(); var f = new Fraction(4, 6); Assert.AreEqual(new Fraction(2, 3), f); }
public void BLOWSUP() { Fraction sum = new Fraction(1, int.MaxValue-1).Add(new Fraction(1, int.MaxValue - 2)); // BLOW UP }
public void Should_Reduce_When_LargerNumerator() { var f = new Fraction(8, 4); Assert.AreEqual(new Fraction(2,1 ), f); }
public void ShouldSum_WhenDenominatorSame() { Fraction sum = new Fraction(1, 3).Add(new Fraction(1, 3)); Assert.AreEqual(new Fraction(2, 3), sum); }
public void NegativeNumerators_ShouldReturnSum2() { Fraction sum = new Fraction(1, 3).Add(new Fraction(-1, 4)); Assert.AreEqual(new Fraction(1, 12), sum); }
public void ShouldSum_WhenDenominatorSame_Complex() { Fraction sum = new Fraction(1, 4).Add(new Fraction(2, 4)); Assert.AreEqual(new Fraction(3, 4), sum); }