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.
 
 
 
 
 
 

33 lines
1.3 KiB

import pycarl
from configurations import PackageSelector, parser
@parser
class TestParse(PackageSelector):
def test_parse_number(self, package):
num = pycarl.parse.deserialize("2", package)
assert num == package.Rational(2)
num = pycarl.parse.deserialize("-2", package)
assert num == package.Rational(-2)
num = pycarl.parse.deserialize("(- 2)", package)
assert num == package.Rational(-2)
def test_parse_polynomial(self, package):
pol = pycarl.parse.deserialize("(+ y 1)", package)
assert str(pol) == "y+1"
def test_parse_rational_function(self, package):
rf = pycarl.parse.deserialize("(/ (+ x 1) (+ y 1))", package)
x = pycarl.variable_with_name("x")
y = pycarl.variable_with_name("y")
assert package.numerator(rf) == package.Polynomial(x) + 1
def test_parse_constraint(self, package):
constraint = pycarl.parse.deserialize("(< x 0)", package)
assert str(constraint) == "x<0"
constraint = pycarl.parse.deserialize("(< x 1)", package)
x = pycarl.variable_with_name("x")
assert constraint.lhs == x - package.Rational(1)
constraint = pycarl.parse.deserialize("(<= (* (- 1) x) 0)", package)
assert constraint.lhs == -package.Polynomial(x)