Пример #1
0
def test_PythonRationalType__lt_le_gt_ge__():
    assert (Q(1, 2) < Q(1, 4)) is False
    assert (Q(1, 2) <= Q(1, 4)) is False
    assert (Q(1, 2) > Q(1, 4)) is True
    assert (Q(1, 2) >= Q(1, 4)) is True

    assert (Q(1, 4) < Q(1, 2)) is True
    assert (Q(1, 4) <= Q(1, 2)) is True
    assert (Q(1, 4) > Q(1, 2)) is False
    assert (Q(1, 4) >= Q(1, 2)) is False
Пример #2
0
def test_PythonRationalType__pow__():
    assert Q(1)**10 == Q(1)
    assert Q(2)**10 == Q(1024)

    assert Q(1)**(-10) == Q(1)
    assert Q(2)**(-10) == Q(1, 1024)
Пример #3
0
def test_PythonRationalType__eq__():
    assert (Q(1, 2) == Q(1, 2)) is True
    assert (Q(1, 2) != Q(1, 2)) is False

    assert (Q(1, 2) == Q(1, 3)) is False
    assert (Q(1, 2) != Q(1, 3)) is True
Пример #4
0
def test_PythonRationalType__mul__():
    assert Q(-1, 2) * Q(1, 2) == Q(-1, 4)
    assert Q(1, 2) * Q(-1, 2) == Q(-1, 4)

    assert Q(1, 2) * Q(1, 2) == Q(1, 4)
    assert Q(1, 2) * Q(3, 2) == Q(3, 4)
    assert Q(3, 2) * Q(1, 2) == Q(3, 4)
    assert Q(3, 2) * Q(3, 2) == Q(9, 4)

    assert 2 * Q(1, 2) == Q(1)
    assert Q(1, 2) * 2 == Q(1)
Пример #5
0
def test_PythonRationalType__div__():
    assert Q(-1, 2) / Q(1, 2) == Q(-1)
    assert Q(1, 2) / Q(-1, 2) == Q(-1)

    assert Q(1, 2) / Q(1, 2) == Q(1)
    assert Q(1, 2) / Q(3, 2) == Q(1, 3)
    assert Q(3, 2) / Q(1, 2) == Q(3)
    assert Q(3, 2) / Q(3, 2) == Q(1)

    assert 2 / Q(1, 2) == Q(4)
    assert Q(1, 2) / 2 == Q(1, 4)

    raises(ZeroDivisionError, "Q(1, 2) / Q(0)")
    raises(ZeroDivisionError, "Q(1, 2) / 0")
Пример #6
0
def test_PythonRationalType__add__():
    assert Q(-1, 2) + Q(1, 2) == Q(0)
    assert Q(1, 2) + Q(-1, 2) == Q(0)

    assert Q(1, 2) + Q(1, 2) == Q(1)
    assert Q(1, 2) + Q(3, 2) == Q(2)
    assert Q(3, 2) + Q(1, 2) == Q(2)
    assert Q(3, 2) + Q(3, 2) == Q(3)

    assert 1 + Q(1, 2) == Q(3, 2)
    assert Q(1, 2) + 1 == Q(3, 2)
Пример #7
0
def test_PythonRationalType__sub__():
    assert Q(-1, 2) - Q(1, 2) == Q(-1)
    assert Q(1, 2) - Q(-1, 2) == Q(1)

    assert Q(1, 2) - Q(1, 2) == Q(0)
    assert Q(1, 2) - Q(3, 2) == Q(-1)
    assert Q(3, 2) - Q(1, 2) == Q(1)
    assert Q(3, 2) - Q(3, 2) == Q(0)

    assert 1 - Q(1, 2) == Q(1, 2)
    assert Q(1, 2) - 1 == Q(-1, 2)
Пример #8
0
def test_PythonRationalType__pos__():
    assert +Q(-1, 2) == Q(-1, 2)
    assert +Q(1, 2) == Q(1, 2)
Пример #9
0
def test_PythonRationalType__neg__():
    assert -Q(-1, 2) == Q(1, 2)
    assert -Q(1, 2) == Q(-1, 2)
Пример #10
0
def test_PythonRationalType__abs__():
    assert abs(Q(-1, 2)) == Q(1, 2)
    assert abs(Q(1, 2)) == Q(1, 2)
Пример #11
0
def test_PythonRationalType__float__():
    assert float(Q(-1, 2)) == -0.5
    assert float(Q(1, 2)) == 0.5
Пример #12
0
def test_PythonRationalType__int__():
    assert int(Q(-1, 4)) == 0
    assert int(Q(1, 4)) == 0
    assert int(Q(-5, 4)) == -1
    assert int(Q(5, 4)) == 1
Пример #13
0
def test_PythonRationalType__hash__():
    assert hash(Q(0)) == hash(0)
    assert hash(Q(1)) == hash(1)
    assert hash(Q(117)) == hash(117)
Пример #14
0
def test_PythonRationalType__init__():
    assert Q(0).p == 0
    assert Q(0).q == 1
    assert Q(0, 1).p == 0
    assert Q(0, 1).q == 1
    assert Q(0, -1).p == 0
    assert Q(0, -1).q == 1

    assert Q(1).p == 1
    assert Q(1).q == 1
    assert Q(1, 1).p == 1
    assert Q(1, 1).q == 1
    assert Q(-1, -1).p == 1
    assert Q(-1, -1).q == 1

    assert Q(-1).p == -1
    assert Q(-1).q == 1
    assert Q(-1, 1).p == -1
    assert Q(-1, 1).q == 1
    assert Q(1, -1).p == -1
    assert Q(1, -1).q == 1

    assert Q(1, 2).p == 1
    assert Q(1, 2).q == 2
    assert Q(3, 4).p == 3
    assert Q(3, 4).q == 4

    assert Q(2, 2).p == 1
    assert Q(2, 2).q == 1
    assert Q(2, 4).p == 1
    assert Q(2, 4).q == 2