def test_trivial_gp(self): """ Create and solve a trivial GP: minimize x + 2y subject to xy >= 1 The global optimum is (x, y) = (sqrt(2), 1/sqrt(2)). """ x = Monomial('x') y = Monomial('y') prob = Model(cost=(x + 2 * y), constraints=[x * y >= 1]) sol = prob.solve(solver=self.solver, verbosity=0) self.assertEqual(type(prob.latex()), str) self.assertEqual(type(prob._repr_latex_()), str) self.assertAlmostEqual(sol("x"), math.sqrt(2.), self.ndig) self.assertAlmostEqual(sol("y"), 1 / math.sqrt(2.), self.ndig) self.assertAlmostEqual( sol("x") + 2 * sol("y"), 2 * math.sqrt(2), self.ndig) self.assertAlmostEqual(sol["cost"], 2 * math.sqrt(2), self.ndig)
def test_trivial_gp(self): """ Create and solve a trivial GP: minimize x + 2y subject to xy >= 1 The global optimum is (x, y) = (sqrt(2), 1/sqrt(2)). """ x = Variable('x') y = Variable('y') prob = Model(cost=(x + 2 * y), constraints=[x * y >= 1]) sol = prob.solve(solver=self.solver, verbosity=0) self.assertEqual(type(prob.latex()), unicode) # pylint: disable=protected-access self.assertEqual(type(prob._repr_latex_()), unicode) self.assertAlmostEqual(sol("x"), np.sqrt(2.), self.ndig) self.assertAlmostEqual(sol("y"), 1 / np.sqrt(2.), self.ndig) self.assertAlmostEqual( sol("x") + 2 * sol("y"), 2 * np.sqrt(2), self.ndig) self.assertAlmostEqual(sol["cost"], 2 * np.sqrt(2), self.ndig)
def test_trivial_gp(self): """ Create and solve a trivial GP: minimize x + 2y subject to xy >= 1 The global optimum is (x, y) = (sqrt(2), 1/sqrt(2)). """ x = Monomial('x') y = Monomial('y') prob = Model(cost=(x + 2*y), constraints=[x*y >= 1]) sol = prob.solve(solver=self.solver, verbosity=0) self.assertEqual(type(prob.latex()), str) self.assertEqual(type(prob._repr_latex_()), str) self.assertAlmostEqual(sol("x"), math.sqrt(2.), self.ndig) self.assertAlmostEqual(sol("y"), 1/math.sqrt(2.), self.ndig) self.assertAlmostEqual(sol("x") + 2*sol("y"), 2*math.sqrt(2), self.ndig) self.assertAlmostEqual(sol["cost"], 2*math.sqrt(2), self.ndig)