Exemplo n.º 1
0
 def test_eq(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.variable_with_name("x")
     assert var1 == var2
     var3 = pycarl.Variable("y")
     assert var1 != var3
Exemplo n.º 2
0
 def test_convert_polynomial(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("n")
     var2 = pycarl.Variable("o")
     original = pycarl.gmp.Polynomial(
         5) * var2 * var1 + var2 * var2 + pycarl.gmp.Integer(3)
     assert isinstance(original, pycarl.gmp.Polynomial)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.Polynomial)
Exemplo n.º 3
0
 def test_convert_polynomial(self, package, convert_package, converter):
     pycarl.clear_pools()
     var1 = pycarl.Variable("n")
     var2 = pycarl.Variable("o")
     original = package.Polynomial(
         4) * var1 * var2 + var1 * var1 + package.Integer(2)
     assert isinstance(original, package.Polynomial)
     converted = converter.convert_polynomial(original)
     assert isinstance(converted, convert_package.Polynomial)
Exemplo n.º 4
0
 def test_convert_rational_function(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var2 + pycarl.gmp.Integer(42)
     pol2 = var1 + pycarl.gmp.Integer(-1)
     original = pycarl.gmp.RationalFunction(pol1, pol2)
     assert isinstance(original, pycarl.gmp.RationalFunction)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.RationalFunction)
Exemplo n.º 5
0
 def test_multiplication(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var1 + package.Integer(2)
     pol2 = var2 + package.Integer(1)
     res = pol1 * pol2
     assert isinstance(res, package.Polynomial)
     polOrig = package.Polynomial(var1 * var1 * var2) + var1 * var1 + package.Integer(2) * var2 + 2
     assert res == polOrig
Exemplo n.º 6
0
 def test_pickle(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     ser = pickle.dumps(var1)
     var2 = pickle.loads(ser)
     assert var1 == var2
     var3 = pycarl.Variable("y")
     ser = pickle.dumps(var3)
     var4 = pickle.loads(ser)
     assert var3 == var4
     assert var4 != var2
Exemplo n.º 7
0
    def test_substitute(self, package):
        pycarl.clear_pools()
        x = pycarl.Variable("x")
        y = pycarl.Variable("y")
        pol1 = package.Polynomial(1) - x
        sub = {x: -package.Polynomial(y) + 1}
        assert pol1.substitute(sub) == package.Polynomial(y)

        z = pycarl.Variable("z")
        sub2 = {z: package.Polynomial(3)}
        assert pol1.substitute(sub2) == pol1
Exemplo n.º 8
0
 def test_division(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = package.Polynomial(var1 * var1 * var2) + package.Integer(2) * var2
     pol2 = package.Integer(3) * var2
     res = pol1 / pol2
     assert isinstance(res, package.RationalFunction)
     polOrig = package.Polynomial(var1 * var1)
     polOrig += package.Integer(2)
     assert res == package.RationalFunction(polOrig, package.Polynomial(3))
Exemplo n.º 9
0
 def test_convert_rational_function(self, package, convert_package,
                                    converter):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var1 + package.Integer(2)
     pol2 = var2 + package.Integer(1)
     original = package.RationalFunction(pol1, pol2)
     assert isinstance(original, package.RationalFunction)
     converted = converter.convert_rational_function(original)
     assert isinstance(converted, convert_package.RationalFunction)
Exemplo n.º 10
0
 def test_addition(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var1 + package.Integer(2)
     pol2 = var2 + package.Integer(1)
     res = pol1 + pol2
     assert isinstance(res, package.Polynomial)
     polOrig = package.Polynomial(var1 * var1)
     polOrig += var2 + package.Integer(3)
     assert res == polOrig
Exemplo n.º 11
0
def test_clear_cln():
    pycarl.clear_pools()
    var = pycarl.Variable("i")
    pol = pycarl.cln.Polynomial(var)

    pycarl.clear_pools()
    var = pycarl.Variable("i")
    pol = pycarl.gmp.Polynomial(var)

    pycarl.clear_pools()
    var = pycarl.Variable("i")
    pol = pycarl.cln.Polynomial(var)
Exemplo n.º 12
0
    def test_clear(self, package):
        pycarl.clear_pools()
        var = pycarl.Variable("i")
        pol = package.Polynomial(var)

        pycarl.clear_pools()
        var = pycarl.Variable("i")
        pol = package.Polynomial(var)

        pycarl.clear_pools()
        var = pycarl.Variable("i")
        pol = package.Polynomial(var)
Exemplo n.º 13
0
 def test_multiplication(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var1 + package.Integer(2)
     pol2 = var2 + package.Integer(1)
     ratfunc1 = package.RationalFunction(pol1, pol2)
     ratfunc2 = package.RationalFunction(package.Polynomial(2),
                                         package.Polynomial(1))
     res = ratfunc1 * ratfunc2
     assert isinstance(res, package.RationalFunction)
     polOrig = package.Polynomial(2) * var1 * var1 + package.Integer(4)
     assert res == package.RationalFunction(polOrig, pol2)
Exemplo n.º 14
0
 def test_constant(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol = package.Polynomial(var1 * var1 * var2) + package.Integer(2) * var2 + package.Integer(4)
     assert pol.constant_part() == 4
     pol = package.Polynomial(package.Rational(-8/3))
     assert pol.is_constant()
     print(type(pol))
     assert pol.constant_part() == package.Rational(-8/3)
     pol = package.Polynomial(1)
     assert pol.is_constant()
     print(type(pol))
     assert pol.constant_part() == 1
Exemplo n.º 15
0
 def test_convert_factorized_polynomial(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("a")
     var2 = pycarl.Variable("b")
     pol1 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(4) * (var2 + pycarl.gmp.Integer(-2)))
     pol2 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(var1) - 3)
     pol3 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(2) * var2)
     original = pol1 * pol2 * pol3
     assert isinstance(original, pycarl.gmp.FactorizedPolynomial)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.FactorizedPolynomial)
     assert len(converted.factorization()) == len(original.factorization())
Exemplo n.º 16
0
 def test_division(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     var2 = pycarl.Variable("y")
     pol1 = var1 * var1 + package.Integer(2)
     pol2 = package.Polynomial(var2)
     ratfunc1 = package.RationalFunction(pol1, pol2)
     ratfunc2 = package.RationalFunction(package.Polynomial(3), pol2)
     res = ratfunc1 / ratfunc2
     assert isinstance(res, package.RationalFunction)
     assert res == package.RationalFunction(pol1, package.Polynomial(3))
     res = var1 / package.Rational("4/3")
     assert isinstance(res, package.RationalFunction)
     expected_res = package.Polynomial(package.Rational("3/4") * var1)
     assert res == expected_res
Exemplo n.º 17
0
 def test_convert_factorized_polynomial(self, package, convert_package,
                                        converter):
     pycarl.clear_pools()
     var1 = pycarl.Variable("a")
     var2 = pycarl.Variable("b")
     pol1 = package.create_factorized_polynomial(
         package.Polynomial(4) * (var2 + package.Integer(-2)))
     pol2 = package.create_factorized_polynomial(
         package.Polynomial(var2) - 2)
     pol3 = package.create_factorized_polynomial(
         package.Polynomial(2) * var1)
     original = pol1 * pol2 * pol3
     assert isinstance(original, package.FactorizedPolynomial)
     converted = converter.convert_factorized_polynomial(original)
     assert isinstance(converted, convert_package.FactorizedPolynomial)
     assert len(converted.factorization()) == len(original.factorization())
Exemplo n.º 18
0
 def test_eq(self, package):
     pycarl.clear_pools()
     var = pycarl.Variable("x")
     term1 = package.Integer(4) * var
     term1 *= var
     term2 = package.Term(2, pycarl.create_monomial(var, 2))
     assert term1 / 2 == term2
Exemplo n.º 19
0
 def test_init(self, package):
     pycarl.clear_pools()
     var = pycarl.Variable("x")
     num = package.Polynomial(2) * var * var + var
     denom = package.Polynomial(var)
     ratfunc = package.RationalFunction(num, denom)
     assert str(ratfunc) == "(2*x+1)/(1)"
Exemplo n.º 20
0
 def test_eq(self, package):
     pycarl.clear_pools()
     var = pycarl.Variable("x")
     pol1 = package.Integer(2) * var + package.Integer(3) * var * var
     assert not pol1 == package.Rational(1)
     pol2 = var + package.Integer(1) - var
     assert pol2 == package.Rational(1)
     assert pol2 == package.Integer(1)
Exemplo n.º 21
0
 def test_conjunction(self, package):
     pycarl.clear_pools()
     x = pycarl.Variable("x")
     y = pycarl.Variable("y")
     constraint1 = package.formula.Constraint(x, Relation.GREATER,
                                              package.Rational(3))
     formula1 = package.formula.Formula(constraint1)
     constraint2 = package.formula.Constraint(y, Relation.EQ,
                                              package.Rational(2))
     formula2 = package.formula.Formula(constraint2)
     and_formula = formula1 & formula2
     assert and_formula.type == FormulaType.AND
     assert len(and_formula) == 2
     subformulas = and_formula.get_subformulas()
     assert len(subformulas) == 2
     assert str(subformulas[0]) == str(formula1)
     assert str(subformulas[1]) == str(formula2)
Exemplo n.º 22
0
    def test_multiplication(self, package):
        pycarl.clear_pools()
        var = pycarl.Variable("x")
        term1 = package.Integer(2) * var * var
        term2 = package.Integer(3) * var

        term3 = term1 * term2
        termOrig = package.Term(6, var * var * var)
        assert term3 == termOrig
Exemplo n.º 23
0
 def test_negation(self, package):
     pycarl.clear_pools()
     x = pycarl.Variable("x")
     constraint = package.formula.Constraint(x, Relation.GREATER,
                                             package.Rational(3))
     formula = package.formula.Formula(constraint)
     neg_formula = ~constraint
     assert neg_formula.type == FormulaType.CONSTRAINT
     assert str(~neg_formula) == str(formula)
Exemplo n.º 24
0
 def test_convert_term(self, package, convert_package, converter):
     pycarl.clear_pools()
     var = pycarl.Variable("n")
     rational = package.Integer(2) / package.Integer(5)
     monomial = pycarl.create_monomial(var, 2)
     original = package.Term(rational, monomial)
     assert isinstance(original, package.Term)
     converted = converter.convert_term(original)
     assert isinstance(converted, convert_package.Term)
Exemplo n.º 25
0
 def test_subtraction(self, package):
     pycarl.clear_pools()
     var1 = pycarl.Variable("x")
     pol1 = package.Polynomial(5) * var1 * var1 + 2
     pol2 = package.Polynomial(var1 * var1) + 1
     res = pol1 - pol2
     assert isinstance(res, package.Polynomial)
     polOrig = package.Polynomial(4) * var1 * var1 + 1
     assert res == polOrig
Exemplo n.º 26
0
 def test_convert_term(self):
     pycarl.clear_pools()
     var = pycarl.Variable("n")
     rational = pycarl.gmp.Integer(-1) / pycarl.gmp.Integer(6)
     monomial = pycarl.create_monomial(var, 3)
     original = pycarl.gmp.Term(rational, monomial)
     assert isinstance(original, pycarl.gmp.Term)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.Term)
Exemplo n.º 27
0
 def test_init(self, package):
     pycarl.clear_pools()
     var = pycarl.Variable("x")
     rational = package.Rational(0.25)
     monomial = pycarl.create_monomial(var, 1)
     term = package.Term(rational, monomial)
     assert term.coeff == package.Rational(0.25)
     assert term.monomial == monomial
     assert str(term) == "1/4*x"
     assert term.tdeg == 1
Exemplo n.º 28
0
 def test_convert_constraint(self, package, convert_package, converter):
     pycarl.clear_pools()
     var1 = pycarl.Variable("a")
     pol1 = package.Polynomial(2) * var1 * var1 + var1 + package.Integer(4)
     original = package.formula.Constraint(pol1,
                                           pycarl.formula.Relation.GREATER)
     assert isinstance(original, package.formula.Constraint)
     converted = converter.convert_constraint(original)
     assert isinstance(converted, convert_package.formula.Constraint)
     assert converted.relation == original.relation
Exemplo n.º 29
0
 def test_convert_factorized_rational_function(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("a")
     var2 = pycarl.Variable("b")
     pol1 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(55) * (var1 + pycarl.gmp.Integer(20)))
     pol2 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(var2) - 2)
     pol3 = pycarl.gmp.create_factorized_polynomial(
         pycarl.gmp.Polynomial(562) * var2)
     original = pycarl.gmp.FactorizedRationalFunction(
         pol1 * pol2, pol2 * pol3)
     assert isinstance(original, pycarl.gmp.FactorizedRationalFunction)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.FactorizedRationalFunction)
     assert len(converted.numerator.factorization()) == len(
         original.numerator.factorization())
     assert len(converted.denominator.factorization()) == len(
         original.denominator.factorization())
Exemplo n.º 30
0
 def test_convert_constraint(self):
     pycarl.clear_pools()
     var1 = pycarl.Variable("a")
     pol1 = pycarl.gmp.Polynomial(
         2) * var1 * var1 + var1 + pycarl.gmp.Integer(4)
     original = pycarl.gmp.formula.Constraint(
         pol1, pycarl.formula.Relation.GREATER)
     assert isinstance(original, pycarl.gmp.formula.Constraint)
     converted = pycarl.convert.convert_to_gmp(original)
     assert isinstance(converted, pycarl.gmp.formula.Constraint)
     assert converted.relation == original.relation