def set_up_fractions(): frac_1_3 = unit.Fraction(1, 3) frac_1_2 = unit.Fraction(1, 2) frac_n2_3 = unit.Fraction(-2, 3) frac_1_1 = unit.Fraction(1, 1) frac_0_5 = unit.Fraction(0, 5) return frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5
def test_fraction_init(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions assert frac_1_3.numer == 1 assert frac_1_2.denom == 2 assert frac_n2_3.numer == -2 frac = unit.Fraction(30, 42) # 30/42 reduces to 5/7. assert frac.numer == 5 assert frac.denom == 7 with pytest.raises(ZeroDivisionError) as excinfo: unit.Fraction.__init__('Test', 9, 0) with pytest.raises(TypeError) as excinfo: unit.Fraction.__init__('Test', 9.7, 3)
def test_fraction_truediv(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions with pytest.raises(ZeroDivisionError) as excinfo: frac_1_1 / frac_0_5 assert frac_1_2 / frac_n2_3 == unit.Fraction(-3, 4)
def test_fraction_mul(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions assert frac_1_2 * frac_n2_3 == unit.Fraction(-1, 3)
def test_fraction_sub(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions assert frac_1_2 - frac_n2_3 == unit.Fraction(7, 6)
def test_fraction_add(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions assert frac_1_2 + frac_n2_3 == unit.Fraction(-1, 6)
def test_fraction_eq(set_up_fractions): frac_1_3, frac_1_2, frac_n2_3, frac_1_1, frac_0_5 = set_up_fractions assert frac_1_2 == unit.Fraction(1, 2) assert frac_1_3 == unit.Fraction(2, 6) assert frac_n2_3 == unit.Fraction(8, -12) assert frac_1_3 == 1 / 3