def test_is_dcp(self): p = Problem(Minimize(normInf(self.a))) self.assertEqual(p.is_dcp(), True) p = Problem(Maximize(normInf(self.a))) self.assertEqual(p.is_dcp(), False) with self.assertRaises(Exception) as cm: p.solve() self.assertEqual(str(cm.exception), "Problem does not follow DCP rules.") p.solve(ignore_dcp=True)
def test_qp_maximization_reduction_path_ecos(self): qp_maximization = Problem(Maximize(-sum_squares(self.x)), [self.x <= -1]) self.assertTrue(qp_maximization.is_dcp()) path = PathFinder().reduction_path(ProblemType(qp_maximization), [ECOS]) self.assertEquals(4, len(path)) self.assertEquals(path[1], ConeMatrixStuffing) self.assertEquals(path[2], Dcp2Cone) self.assertEquals(path[3], FlipObjective)