You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
2.3 KiB

import pycarl
import math
from configurations import PackageSelector
class TestRational(PackageSelector):
def test_create(self, package):
r1 = package.Rational(package.Integer(1), package.Integer(2))
assert package.numerator(r1) == 1
assert package.denominator(r1) == 2
def test_parse(self, package):
r1 = package.Rational("1/2")
assert package.numerator(r1) == 1
assert package.denominator(r1) == 2
r2 = package.Rational("1090843549285935/1125899906842624")
assert package.numerator(r2) == package.Integer("1090843549285935")
assert package.denominator(r2) == package.Integer("1125899906842624")
def test_addition(self, package):
r1 = package.Rational(package.Integer(2), package.Integer(5))
r2 = package.Rational(package.Integer(3), package.Integer(10))
res = r1 + r2
assert isinstance(res, package.Rational)
assert res == package.Rational("7/10")
def test_subtraction(self, package):
r1 = package.Rational(package.Integer(2), package.Integer(5))
r2 = package.Rational(package.Integer(3), package.Integer(10))
res = r1 - r2
assert isinstance(res, package.Rational)
assert res == package.Rational("1/10")
def test_multiplication(self, package):
r1 = package.Rational(package.Integer(2), package.Integer(5))
r2 = package.Rational(package.Integer(3), package.Integer(10))
res = r1 * r2
assert isinstance(res, package.Rational)
assert res == package.Rational("3/25")
def test_division(self, package):
r1 = package.Rational(package.Integer(2), package.Integer(5))
r2 = package.Rational(package.Integer(3), package.Integer(10))
res = r1 / r2
assert isinstance(res, package.Rational)
assert res == package.Rational("4/3")
def test_eq(self, package):
r3 = package.Rational("3/1")
assert r3 == package.Integer(3)
assert r3 == 3
assert r3 != package.Integer(1)
assert r3 != 2
r2 = package.Rational("1/2")
assert r3 != r2
def test_comparison_infinity(self, package):
r4 = package.Rational("1/2")
assert pycarl.inf > r4
assert r4 < pycarl.inf
assert r4 > -pycarl.inf
assert -pycarl.inf < r4