def test_unconstructed_singleton(self): a = Objective() self.assertEqual(a._constructed, False) self.assertEqual(len(a), 0) try: a() self.fail("Component is unconstructed") except ValueError: pass try: a.expr self.fail("Component is unconstructed") except ValueError: pass try: a.sense self.fail("Component is unconstructed") except ValueError: pass a.construct() a.set_sense(minimize) self.assertEqual(len(a), 1) self.assertEqual(a(), None) self.assertEqual(a.expr, None) self.assertEqual(a.sense, minimize) a.sense = maximize self.assertEqual(len(a), 1) self.assertEqual(a(), None) self.assertEqual(a.expr, None) self.assertEqual(a.sense, maximize)
def test_empty_singleton(self): a = Objective() a.construct() # # Even though we construct a SimpleObjective, # if it is not initialized that means it is "empty" # and we should encounter errors when trying to access the # _ObjectiveData interface methods until we assign # something to the objective. # self.assertEqual(a._constructed, True) self.assertEqual(len(a), 0) try: a() self.fail("Component is empty") except ValueError: pass try: a.expr self.fail("Component is empty") except ValueError: pass try: a.sense self.fail("Component is empty") except ValueError: pass x = Var(initialize=1.0) x.construct() a.set_value(x + 1) self.assertEqual(len(a), 1) self.assertEqual(a(), 2) self.assertEqual(a.expr(), 2) self.assertEqual(a.sense, minimize)