def test_init_NumericValue(self): v = variable() p = parameter() e = expression() d = data_expression() o = objective() for obj in (v, v + 1, v**2, p, p + 1, p**2, e, e + 1, e**2, d, d + 1, d**2, o, o + 1, o**2): self.assertTrue(isinstance(noclone(obj), NumericValue)) self.assertTrue(isinstance(noclone(obj), IIdentityExpression)) self.assertTrue(isinstance(noclone(obj), noclone)) self.assertIs(noclone(obj).expr, obj)
def testis_potentially_variable(self): e = noclone(variable()) self.assertEqual(e.is_potentially_variable(), True) self.assertEqual(potentially_variable(e), True) e = noclone(parameter()) self.assertEqual(e.is_potentially_variable(), False) self.assertEqual(potentially_variable(e), False) e = noclone(expression()) self.assertEqual(e.is_potentially_variable(), True) self.assertEqual(potentially_variable(e), True) e = noclone(data_expression()) self.assertEqual(e.is_potentially_variable(), False) self.assertEqual(potentially_variable(e), False)
def test_bad_weights(self): v = variable() with self.assertRaises(ValueError): s = sos([v], weights=[v]) v.fix(1.0) with self.assertRaises(ValueError): s = sos([v], weights=[v]) e = expression() with self.assertRaises(ValueError): s = sos([v], weights=[e]) de = data_expression() s = sos([v], weights=[de]) p = parameter() s = sos([v], weights=[p])
def test_ctype(self): e = data_expression() self.assertIs(e.ctype, Expression) self.assertIs(type(e).ctype, Expression) self.assertIs(data_expression.ctype, Expression)
def test_is_expression_type(self): for obj in (variable(), parameter(), objective(), expression(), data_expression()): self.assertEqual(noclone(obj).is_expression_type(), True)