def test_get_max_cnt_violation_leq_cnts(self): model = grb.Model() prob = Prob(model) dummy_var = Variable(np.zeros((1, 1)), np.zeros((1, 1))) f = lambda x: np.array([[1, 3]]) f_expr = Expr(f) leq_expr = LEqExpr(f_expr, np.array([[1, 1]])) bexpr = BoundExpr(leq_expr, dummy_var) prob.add_cnt_expr(bexpr) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2, 1]]) leq_expr.expr = f_expr leq_expr.val = np.array([[1, 1]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 1.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2, -2]]) leq_expr.expr = f_expr leq_expr.val = np.array([[1, 1]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 1.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2, -2]]) leq_expr.expr = f_expr leq_expr.val = np.array([[2, -2]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 0.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2, 0]]) leq_expr.expr = f_expr leq_expr.val = np.array([[2, -2]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0))
def test_get_max_cnt_violation_leq_cnts(self): model = grb.Model() prob = Prob(model) dummy_var = Variable(np.zeros((1,1)), np.zeros((1,1))) f = lambda x: np.array([[1,3]]) f_expr = Expr(f) leq_expr = LEqExpr(f_expr, np.array([[1,1]])) bexpr = BoundExpr(leq_expr, dummy_var) prob.add_cnt_expr(bexpr) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2,1]]) leq_expr.expr = f_expr leq_expr.val = np.array([[1,1]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 1.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2,-2]]) leq_expr.expr = f_expr leq_expr.val = np.array([[1,1]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 1.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2,-2]]) leq_expr.expr = f_expr leq_expr.val = np.array([[2, -2]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 0.0)) f_expr = Expr(f) f_expr.f = lambda x: np.array([[2, 0]]) leq_expr.expr = f_expr leq_expr.val = np.array([[2, -2]]) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0))
def test_get_max_cnt_violation_mult_cnts(self): model = grb.Model() prob = Prob(model) dummy_var = Variable(np.zeros((1, 1)), np.zeros((1, 1))) f1 = lambda x: np.array([[1, 3]]) f2 = lambda x: np.array([[0, 0]]) f1_expr = Expr(f1) leq_expr = LEqExpr(f1_expr, np.array([[1, 1]])) bexpr = BoundExpr(leq_expr, dummy_var) prob.add_cnt_expr(bexpr) f2_expr = Expr(f2) eq_expr = EqExpr(f2_expr, np.array([[1, 1]])) bexpr = BoundExpr(eq_expr, dummy_var) prob.add_cnt_expr(bexpr) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0))
def test_get_max_cnt_violation_mult_cnts(self): model = grb.Model() prob = Prob(model) dummy_var = Variable(np.zeros((1,1)), np.zeros((1,1))) f1 = lambda x: np.array([[1,3]]) f2 = lambda x: np.array([[0,0]]) f1_expr = Expr(f1) leq_expr = LEqExpr(f1_expr, np.array([[1,1]])) bexpr = BoundExpr(leq_expr, dummy_var) prob.add_cnt_expr(bexpr) f2_expr = Expr(f2) eq_expr = EqExpr(f2_expr, np.array([[1,1]])) bexpr = BoundExpr(eq_expr, dummy_var) prob.add_cnt_expr(bexpr) self.assertTrue(np.allclose(prob.get_max_cnt_violation(), 2.0))