def test_fraction_truediv(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 / frac_1_3 == specs.Fraction(3, 2)
    assert frac_1_3 / frac_n2_3 == specs.Fraction(-1, 2)
    with pytest.raises(ZeroDivisionError) as excinfo:
        frac_1_3 / specs.Fraction(0, 3)
    assert excinfo.value.args[0] == "cannot divide by zero"
Esempio n. 2
0
def test_fraction_eq(set_up_fractions):
    """tests comparing fractions"""
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 == specs.Fraction(1, 2)
    assert frac_1_3 == specs.Fraction(2, 6)
    assert frac_n2_3 == specs.Fraction(8, -12)
    assert frac_1_3 == float(1 / 3)  #compare equivalence to floats as well
Esempio n. 3
0
def test_fraction_add(set_up_fractions):
    """tests adding fractions"""
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    #compare to fraction that should be equal
    assert frac_1_2 + frac_1_3 == specs.Fraction(5, 6)
    assert frac_1_3 + frac_n2_3 == specs.Fraction(-1, 3)
    assert frac_n2_3 + frac_1_3 + frac_1_3 == specs.Fraction(0, 1)
Esempio n. 4
0
def test_fraction_truediv(set_up_fractions):
    """tests dividing fractions"""
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    #compare to fraction that should be equal
    assert frac_1_2 / frac_1_3 == specs.Fraction(3, 2)
    assert frac_1_3 / frac_n2_3 == specs.Fraction(-1, 2)
    assert specs.Fraction(0, 1) / frac_n2_3 == specs.Fraction(0, 1)
    pytest.raises(ZeroDivisionError, specs.Fraction.__truediv__, frac_1_2,
                  specs.Fraction(0, 1))
def test_fraction_truediv(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 / frac_1_3 == specs.Fraction(3, 2)
    assert frac_1_3 / frac_1_3 == specs.Fraction(1, 1)
    with pytest.raises(ZeroDivisionError) as excinfo:
        specs.Fraction(0, 0) == 0
    assert excinfo.value.args[0] == "denominator cannot be zero"

    with pytest.raises(ZeroDivisionError) as excinfo:
        frac_n2_3 / specs.Fraction(0, -12) == specs.Fraction(8, -12)
    assert excinfo.value.args[0] == "cannot divide by zero"
Esempio n. 6
0
def set_up_fractions():
    """
    the add is weird
    self(1,5) is 1/5, and other is 2/3
    to add them take 3/3*(1/5) and 5/5*(2/3)
    numerator will become (3*1 + 5*2), denominator is 3*5.

    """

    frac_1_3 = specs.Fraction(1, 3)
    frac_1_2 = specs.Fraction(1, 2)
    frac_n2_3 = specs.Fraction(-2, 3)
    return frac_1_3, frac_1_2, frac_n2_3
Esempio n. 7
0
def test_fraction_init(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    with pytest.raises(ZeroDivisionError) as excinfo:
        specs.Fraction(1, 0)
    with pytest.raises(TypeError) as excinfo:
        specs.Fraction(1.5, 3)
    with pytest.raises(TypeError) as excinfo:
        specs.Fraction(1, 1.3)
    frac = specs.Fraction(30, 42)
    assert frac.numer == 5
    assert frac.denom == 7
def test_fraction_init(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    frac = specs.Fraction(30, 42)
    assert frac.numer == 5
    assert frac.denom == 7
    with pytest.raises(ZeroDivisionError) as excinfo_1:
        specs.Fraction(1, 0)
    assert excinfo_1.value.args[0] == "denominator cannot be zero"
    with pytest.raises(TypeError) as excinfo_1:
        specs.Fraction('3', '5')
    assert excinfo_1.value.args[0] == "numerator and denominator must be integers"
def test_fraction_init(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    assert frac_n2_3.denom == 3
    frac = specs.Fraction(30, 42)
    assert frac.numer == 5
    assert frac.denom == 7

    with pytest.raises(TypeError) as excinfo:
        specs.Fraction(1.3, 3)
    assert excinfo.value.args[
        0] == "numerator and denominator must be integers"
Esempio n. 10
0
def test_fraction_init(set_up_fractions):
    """tests proper initialization of fractions objects"""
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    frac = specs.Fraction(30, 42)  # 30/42 reduces to 5/7.
    assert frac.numer == 5
    assert frac.denom == 7
    with pytest.raises(ZeroDivisionError) as err:
        specs.Fraction(1, 0)
    assert err.value.args[0] == "denominator cannot be zero"
    with pytest.raises(TypeError) as err1:
        specs.Fraction(1.2, 1.3)
    assert err1.value.args[0] == "numerator and denominator must be integers"
def test_fraction_str(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert str(frac_1_3) == "1/3"
    assert str(frac_1_2) == "1/2"
    assert str(frac_n2_3) == "-2/3"
    assert str(specs.Fraction(2, 1)) == "2"
Esempio n. 12
0
def test_fraction_str(set_up_fractions):
    """tests fractions represented as strings"""
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert str(frac_1_3) == "1/3"
    assert str(frac_1_2) == "1/2"
    assert str(frac_n2_3) == "-2/3"
    assert str(specs.Fraction(2, 1)) == '2'  #no denominator
def test_fraction_str(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert str(frac_1_3) == "1/3"
    assert str(frac_1_2) == "1/2"
    assert str(frac_n2_3) == "-2/3"
    frac = specs.Fraction(30, 5)
    assert str(frac) == '6'
Esempio n. 14
0
def test_fraction_init(set_up_fractions):
    #this function will also test the Errors
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    frac = specs.Fraction(30, 42)
    pytest.raises(ZeroDivisionError,
                  specs.Fraction,
                  numerator=7,
                  denominator=0)
    assert frac.numer == 5
    assert frac.denom == 7
    with pytest.raises(TypeError) as excinfo:
        specs.Fraction(7, "hello")
    assert excinfo.value.args[
        0] == "numerator and denominator must be integers"
Esempio n. 15
0
def test_fraction_str(set_up_fractions):
    #this includes the case when denominator is 1
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    frac = specs.Fraction(3, 1)
    assert str(frac) == "3"
    assert str(frac_1_3) == "1/3"
    assert str(frac_1_2) == "1/2"
    assert str(frac_n2_3) == "-2/3"
Esempio n. 16
0
def test_fraction_init(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_3.numer == 1
    assert frac_1_2.denom == 2
    assert frac_n2_3.numer == -2
    frac = specs.Fraction(30, 42)
    assert frac.numer == 5
    assert frac.denom == 7
def test_fraction_add(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 + frac_1_2 == specs.Fraction(1, 1)
    assert frac_1_3 + frac_1_3 == specs.Fraction(2, 3)
    assert frac_n2_3 + frac_1_2 == specs.Fraction(1, -6)
Esempio n. 18
0
def test_fraction_str(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert str(frac_1_3) == "1/3"
    assert str(frac_1_2) == "1/2"
    assert str(frac_n2_3) == "-2/3"
    assert str(specs.Fraction(3, 1)) == "3"
def test_fraction_add(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 + frac_1_3 == specs.Fraction(5, 6)
    assert frac_1_3 + frac_n2_3 == specs.Fraction(-1, 3)
def test_fraction_sub(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 - frac_1_3 == specs.Fraction(1, 6)
    assert frac_1_3 - frac_n2_3 == specs.Fraction(1, 1)
Esempio n. 21
0
def set_up_fractions():
    """creates some test fractions for other test functions"""
    frac_1_3 = specs.Fraction(1, 3)
    frac_1_2 = specs.Fraction(1, 2)
    frac_n2_3 = specs.Fraction(-2, 3)
    return frac_1_3, frac_1_2, frac_n2_3  #return several fraction to use
def test_fraction_mul(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 * frac_1_3 == specs.Fraction(1, 6)
    assert frac_1_3 * frac_n2_3 == specs.Fraction(-2, 9)
def set_up_fractions():
    #initiate some values
    frac_1_3 = specs.Fraction(1, 3)
    frac_1_2 = specs.Fraction(1, 2)
    frac_n2_3 = specs.Fraction(-2, 3)
    return frac_1_3, frac_1_2, frac_n2_3
Esempio n. 24
0
def test_fraction_eq(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 == specs.Fraction(1, 2)
    assert specs.Fraction.__eq__(frac_1_2, 0.5)
    assert frac_1_3 == specs.Fraction(2, 6)
    assert frac_n2_3 == specs.Fraction(8, -12)
def test_fraction_mul(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 * frac_1_2 == specs.Fraction(1, 4)
    assert frac_1_3 * frac_1_2 == specs.Fraction(1, 6)
    assert frac_n2_3 * frac_1_2 == specs.Fraction(2, -6)
def test_fraction_sub(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 - frac_1_3 == specs.Fraction(1, 6)
    assert frac_1_3 - frac_1_3 == 0
    assert frac_n2_3 - frac_1_3 == -1
def test_fraction_eq(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 == specs.Fraction(1, 2)
    assert frac_1_3 == specs.Fraction(2, 6)
    assert frac_n2_3 == specs.Fraction(8, -12)
    assert specs.Fraction(3, 5) == 0.6
def test_fraction_eq(set_up_fractions):
    #test cases for all conditions
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert frac_1_2 == specs.Fraction(1, 2)
    assert frac_1_3 == specs.Fraction(2, 6)
    assert frac_n2_3 == specs.Fraction(8, -12)
Esempio n. 29
0
def test_fraction_truD(set_up_fractions):
    frac_1_3, frac_1_2, frac_n2_3 = set_up_fractions
    assert str(specs.Fraction.__truediv__(frac_1_3, frac_1_2)) == "2/3"
    with pytest.raises(ZeroDivisionError) as excinfo:
        specs.Fraction.__truediv__(frac_1_3, specs.Fraction(0, 1))
    assert excinfo.value.args[0] == "cannot divide by zero"
def set_up_fractions():
    frac_1_3 = specs.Fraction(1, 3)
    frac_1_2 = specs.Fraction(1, 2)
    frac_n2_3 = specs.Fraction(-2, 3)
    return frac_1_3, frac_1_2, frac_n2_3