def set_up_fractions(): frac_1_2 = ut.Fraction(1, 2) frac_2_3 = ut.Fraction(2, 3) frac_n2_3 = ut.Fraction(-2, 3) frac_1_4 = ut.Fraction(1, 4) frac_0_1 = ut.Fraction(0, 1) return frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1
def test_fraction_eq(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_1_2 == ut.Fraction(1, 2) assert frac_2_3 == ut.Fraction(4, 6) assert frac_n2_3 == ut.Fraction(8, -12) assert frac_1_4 == ut.Fractions(4, 16) assert float(frac_n2_3) == frac_n2_3
def test_fraction_init(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_1_2.denom == 2 assert frac_2_3.numer == 2 assert frac_n2_3.numer == -2 frac = ut.Fraction(26, 40) # 13/20. assert frac.numer == 13 assert frac.denom == 20 with pytest.raises(ZeroDivisionError) as excinfo: ut.Fraction.__init__('Test', 7, 0) with pytest.raises(TypeError) as excinfo: ut.Fraction.__init__('Test', 3.5, 2)
def test_fraction_div(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_2_3 / frac_1_4 == ut.Fraction(8, 3) with pytest.raises(ZeroDivisionError) as excinfo: frac_2_3 / frac_0_1
def test_fraction_mul(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_2_3 * frac_1_4 == ut.Fraction(1, 6)
def test_fraction_sub(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_2_3 - frac_1_4 == ut.Fraction(5, 12)
def test_fraction_add(set_up_fractions): frac_1_2, frac_2_3, frac_n2_3, frac_1_4, frac_0_1 = set_up_fractions assert frac_2_3 + frac_1_4 == ut.Fraction(11, 12)