コード例 #1
0
 def test_init(self):
     e = PyEnvironment([PyVar('x0'), PyVar('y')], [PyVar('z')])
     x = PyLinexpr1(e)
     x0 = PyLinexpr1(e, 0)
     self.assertEqual(str(PyTexpr1(x)), '0.0')
     self.assertEqual(str(PyTexpr1(x0)), '0.0 + 0.0 · x0 + 0.0 · y + 0.0 · z')
     x.set_coeff(PyVar('x0'), PyDoubleScalarCoeff(-1))
     x.set_coeff(PyVar('z'), PyDoubleScalarCoeff(-9))
     x.set_cst(PyDoubleScalarCoeff(8))
     self.assertEqual(str(PyTexpr1(x)), '8.0 - 1.0 · x0 - 9.0 · z')
コード例 #2
0
ファイル: test_tcons1.py プロジェクト: caterinaurban/apronpy
 def test_substitute(self):
     e = PyEnvironment([PyVar('x0'), PyVar('y')], [PyVar('z')])
     x0 = PyLinexpr1(e)
     x0.set_coeff(PyVar('x0'), PyMPQScalarCoeff(1))
     x0.set_cst(PyMPQScalarCoeff(3))
     t0 = PyTexpr1(x0)
     c0 = PyTcons1.make(t0, ConsTyp.AP_CONS_SUPEQ)
     self.assertEqual(str(c0), '3 + 1 · x0 >= 0')
     x1 = PyLinexpr1(e)
     x1.set_coeff(PyVar('x0'), PyMPQScalarCoeff(1))
     x1.set_cst(PyMPQScalarCoeff(-1))
     t1 = PyTexpr1(x1)
     c1 = PyTcons1.make(t1, ConsTyp.AP_CONS_SUPEQ)
     self.assertEqual(str(c1), '-1 + 1 · x0 >= 0')
     self.assertEqual(str(c0.substitute(PyVar('x0'), t1)),
                      '3 + 1 · (-1 + 1 · x0) >= 0')
コード例 #3
0
ファイル: test_tcons1.py プロジェクト: caterinaurban/apronpy
 def test_make(self):
     e = PyEnvironment([PyVar('x0'), PyVar('y')], [PyVar('z')])
     x = PyLinexpr1(e)
     x.set_coeff(PyVar('x0'), PyDoubleScalarCoeff(3))
     x.set_coeff(PyVar('z'), PyDoubleScalarCoeff(-9))
     x.set_cst(PyDoubleScalarCoeff(8))
     c = PyTcons1.make(PyTexpr1(x), ConsTyp.AP_CONS_SUPEQ)
     self.assertEqual(str(c), '8.0 + 3.0 · x0 - 9.0 · z >= 0')
コード例 #4
0
 def test_substitute(self):
     e = PyEnvironment([PyVar('x0'), PyVar('y')], [PyVar('z')])
     x0 = PyLinexpr1(e)
     x0.set_coeff(PyVar('x0'), PyMPQScalarCoeff(1))
     x0.set_cst(PyMPQScalarCoeff(3))
     t0 = PyTexpr1(x0)
     self.assertEqual(str(t0), '3 + 1 · x0')
     x1 = PyLinexpr1(e)
     x1.set_coeff(PyVar('x0'), PyMPQScalarCoeff(1))
     x1.set_cst(PyMPQScalarCoeff(-1))
     t1 = PyTexpr1(x1)
     self.assertEqual(str(t1), '-1 + 1 · x0')
     self.assertEqual(str(t0.substitute(PyVar('x0'), t1)), '3 + 1 · (-1 + 1 · x0)')
     x2 = PyLinexpr1(e)
     x2.set_coeff(PyVar('x0'), PyMPQScalarCoeff(1))
     x2.set_cst(PyMPQScalarCoeff(2))
     t2 = PyTexpr1(x2)
     self.assertEqual(str(t2), '2 + 1 · x0')
コード例 #5
0
ファイル: test_tcons1.py プロジェクト: caterinaurban/apronpy
 def test_deepcopy(self):
     e = PyEnvironment([PyVar('x0'), PyVar('y')], [PyVar('z')])
     x = PyLinexpr1(e)
     x.set_coeff(PyVar('x0'), PyDoubleScalarCoeff(3))
     x.set_coeff(PyVar('z'), PyDoubleScalarCoeff(-9))
     x.set_cst(PyDoubleScalarCoeff(8))
     c0 = PyTcons1.make(PyTexpr1(x), ConsTyp.AP_CONS_SUPEQ)
     c1 = deepcopy(c0)
     c2 = c0
     self.assertNotEqual(id(c0), id(c1))
     self.assertEqual(id(c0), id(c2))