def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constraints = self.canonicalize() sym_data = SymData(objective, constraints, SOLVERS[s.ECOS]) return (len(sym_data.constr_map[s.EQ]), len(sym_data.constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj), [eq, eq, le, le]) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Internal constraints. X = Semidef(2) obj = sum_entries(X + X) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (0, 1)) # Duplicates from non-linear constraints. exp = norm(self.x, 2) prob = Problem(Minimize(0), [exp <= 1, exp <= 2]) result = prob.solve(method="test") self.assertEqual(result, (0, 4))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constr_map = self.canonicalize() print len(constr_map[s.SOC]) dims = self._format_for_solver(constr_map, s.ECOS) return (len(constr_map[s.EQ]), len(constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj), [eq, eq, le, le]) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Internal constraints. z = hstack(self.x, self.x) obj = sum_entries(z[:, 0] + z[:, 1]) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (2, 0)) # Duplicates from non-linear constraints. exp = norm(self.x, 2) prob = Problem(Minimize(0), [exp <= 1, exp <= 2]) result = prob.solve(method="test") self.assertEqual(result, (0, 4))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constr_map = self.canonicalize() self._presolve(objective, constr_map) print len(constr_map[s.SOC]) dims = self._format_for_solver(constr_map, s.ECOS) return (len(constr_map[s.EQ]),len(constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj),[eq,eq,le,le]) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Internal constraints. X = Semidef(2) obj = sum_entries(X + X) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Duplicates from non-linear constraints. exp = norm(self.x, 2) prob = Problem(Minimize(0), [exp <= 1, exp <= 2]) result = prob.solve(method="test") self.assertEqual(result, (0, 4))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constraints = self.canonicalize() sym_data = SymData(objective, constraints, SOLVERS[s.CVXOPT]) return (len(sym_data.constr_map[s.EQ]), len(sym_data.constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj),[eq,eq,le,le]) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Internal constraints. X = Semidef(2) obj = sum_entries(X + X) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (0, 1)) # Duplicates from non-linear constraints. exp = norm(self.x, 2) prob = Problem(Minimize(0), [exp <= 1, exp <= 2]) result = prob.solve(method="test") self.assertEqual(result, (0, 4))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective,constr_map,dims = self.canonicalize() return (len(constr_map[s.EQ]),len(constr_map[s.INEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj),[eq,eq,le,le]) result = p.solve(method="test") self.assertEqual(result, (1,1))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constr_map, dims = self.canonicalize() return (len(constr_map[s.EQ]), len(constr_map[s.INEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj), [eq, eq, le, le]) result = p.solve(method="test") self.assertEqual(result, (1, 1))
def test_register_solve(self): Problem.register_solve("test",lambda self: 1) p = Problem(Minimize(1)) result = p.solve(method="test") self.assertEqual(result, 1) def test(self, a, b=2): return (a,b) Problem.register_solve("test", test) p = Problem(Minimize(0)) result = p.solve(1,b=3,method="test") self.assertEqual(result, (1,3)) result = p.solve(1,method="test") self.assertEqual(result, (1,2)) result = p.solve(1,method="test",b=4) self.assertEqual(result, (1,4))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective,constr_map,dims,solver = self.canonicalize(s.ECOS) return (len(constr_map[s.EQ]),len(constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj),[eq,eq,le,le]) result = p.solve(method="test") self.assertEqual(result, (1,1)) # Internal constraints. z = hstack(self.x, self.x) obj = sum_entries(z[:,0] + z[:,1]) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (2,0))
def test_duplicate_constraints(self): eq = (self.x == 2) le = (self.x <= 2) obj = 0 def test(self): objective, constr_map, dims, solver = self.canonicalize(s.ECOS) return (len(constr_map[s.EQ]), len(constr_map[s.LEQ])) Problem.register_solve("test", test) p = Problem(Minimize(obj), [eq, eq, le, le]) result = p.solve(method="test") self.assertEqual(result, (1, 1)) # Internal constraints. z = hstack(self.x, self.x) obj = sum_entries(z[:, 0] + z[:, 1]) p = Problem(Minimize(obj)) result = p.solve(method="test") self.assertEqual(result, (2, 0))