Example #1
0
        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);
        }
Example #2
0
 public void ShouldSum_WhenDenominator1()
 {
     Fraction sum = new Fraction(1, 1).Add(new Fraction(1, 1));
     Assert.AreEqual(2, sum.Numerator);
 }
Example #3
0
 public void ShouldReturn0_WhenAdding0()
 {
     Fraction sum = new Fraction(0, 1).Add(new Fraction(0, 1));
     Assert.AreEqual(0, sum.Numerator);
 }
Example #4
0
 public void ShouldKeepDenominator_WhenDenominatorSame()
 {
     Fraction sum = new Fraction(1, 4).Add(new Fraction(2, 4));
     Assert.AreEqual(4, sum.Denominator);
 }
Example #5
0
 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);
 }
Example #6
0
 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);
 }
Example #7
0
 public void ShouldExpandDenominator_WhenDenominatorsAreNotSame()
 {
     var sum = new Fraction(1, 2).Add(new Fraction(1, 6));
     Assert.AreEqual(new Fraction(2,3), sum);
 }
Example #8
0
 public void Should_Reduce_When_LargerDenominator()
 {
     Assert.Inconclusive();
     var f = new Fraction(4, 8);
     Assert.AreEqual(new Fraction(1, 2), f);
 }
Example #9
0
 public void NegativeNumerators_Should()
 {
     Fraction sum = new Fraction(-1, 1).Add(new Fraction(1, 1));
     Assert.AreEqual(new Fraction(0, 1), sum);
 }
Example #10
0
 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);
 }
Example #11
0
 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);
 }
Example #12
0
 public void Should_Reduce_When_PassingPotential()
 {
     Assert.Inconclusive();
     var f = new Fraction(4, 6);
     Assert.AreEqual(new Fraction(2, 3), f);
 }
Example #13
0
 public void BLOWSUP()
 {
     Fraction sum = new Fraction(1, int.MaxValue-1).Add(new Fraction(1, int.MaxValue - 2));
     // BLOW UP
 }
Example #14
0
 public void Should_Reduce_When_LargerNumerator()
 {
     var f = new Fraction(8, 4);
     Assert.AreEqual(new Fraction(2,1 ), f);
 }
Example #15
0
 public void ShouldSum_WhenDenominatorSame()
 {
     Fraction sum = new Fraction(1, 3).Add(new Fraction(1, 3));
     Assert.AreEqual(new Fraction(2, 3), sum);
 }
Example #16
0
 public void NegativeNumerators_ShouldReturnSum2()
 {
     Fraction sum = new Fraction(1, 3).Add(new Fraction(-1, 4));
     Assert.AreEqual(new Fraction(1, 12), sum);
 }
Example #17
0
 public void ShouldSum_WhenDenominatorSame_Complex()
 {
     Fraction sum = new Fraction(1, 4).Add(new Fraction(2, 4));
     Assert.AreEqual(new Fraction(3, 4), sum);
 }