def test_iis_no_variable_values(self): with pyomo.opt.ReaderFactory("sol") as reader: if reader is None: raise IOError("Reader 'sol' is not registered") result = reader(currdir+"iis_no_variable_values.sol", suffixes=["iis"]) soln = result.solution(0) self.assertEqual(len(list(soln.variable['v0'].keys())), 1) self.assertEqual(soln.variable['v0']['iis'], 1) self.assertEqual(len(list(soln.variable['v1'].keys())), 1) self.assertEqual(soln.variable['v1']['iis'], 1) self.assertEqual(len(list(soln.constraint['c0'].keys())), 1) self.assertEqual(soln.constraint['c0']['Iis'], 4) import pyomo.kernel as pmo m = pmo.block() m.v0 = pmo.variable() m.v1 = pmo.variable() m.c0 = pmo.constraint() m.iis = pmo.suffix(direction=pmo.suffix.IMPORT) from pyomo.core.expr.symbol_map import SymbolMap soln.symbol_map = SymbolMap() soln.symbol_map.addSymbol(m.v0, 'v0') soln.symbol_map.addSymbol(m.v1, 'v1') soln.symbol_map.addSymbol(m.c0, 'c0') m.load_solution(soln) pmo.pprint(m.iis) self.assertEqual(m.iis[m.v0], 1) self.assertEqual(m.iis[m.v1], 1) self.assertEqual(m.iis[m.c0], 4)
def test_pprint(self): import pyomo.kernel # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. m,n = 3,2 vlist = _create_variable_list(2) A = numpy.random.rand(m,n) ctuple = matrix_constraint(A, lb=1, ub=2, x=vlist) pmo.pprint(ctuple) b = block() b.c = ctuple pmo.pprint(ctuple) pmo.pprint(b) m = block() m.b = b pmo.pprint(ctuple) pmo.pprint(b) pmo.pprint(m)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. v = variable() o = objective(expr=v**2) pprint(o) b = block() b.o = o pprint(o) pprint(b) m = block() m.b = b pprint(o) pprint(b) pprint(m)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. v = variable() clist = constraint_list([constraint()]) s = suffix() s[v] = 1 s[clist] = None pprint(s) b = block() b.s = s pprint(s) pprint(b) m = block() m.b = b pprint(s) pprint(b) pprint(m) pprint({'a': 1, 'b': 2})
def test_preorder_traversal_descend_check(self): cdict, traversal = \ super(_TestActiveDictContainerBase, self).\ test_preorder_traversal_descend_check() cdict[1].deactivate() def descend(x): self.assertTrue(x._is_container) descend.seen.append(x) return not x._is_heterogeneous_container descend.seen = [] pmo.pprint(cdict) order = list( pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual([None, '[0]', '[2]'], [c.name for c in order]) self.assertEqual( [id(cdict), id(cdict[0]), id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None, '[0]', '[2]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict), id(cdict[0]), id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None], [c.name for c in descend.seen]) self.assertEqual([id(cdict)], [id(c) for c in descend.seen]) def descend(x): self.assertTrue(x._is_container) descend.seen.append(x) return x.active and (not x._is_heterogeneous_container) descend.seen = [] order = list( pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in order]) self.assertEqual( [id(cdict), id(cdict[0]), id(cdict[1]), id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in descend.seen]) self.assertEqual( [id(cdict), id(cdict[0]), id(cdict[1]), id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None, '[1]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict), id(cdict[1])], [id(c) for c in descend.seen]) cdict[1].deactivate(shallow=False) def descend(x): descend.seen.append(x) return not x._is_heterogeneous_container descend.seen = [] order = list( pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual([c.name for c in traversal if c.active], [c.name for c in order]) self.assertEqual([id(c) for c in traversal if c.active], [id(c) for c in order]) self.assertEqual([c.name for c in traversal if c.active and \ c._is_container], [c.name for c in descend.seen]) self.assertEqual([id(c) for c in traversal if c.active and \ c._is_container], [id(c) for c in descend.seen]) def descend(x): descend.seen.append(x) return x.active and (not x._is_heterogeneous_container) descend.seen = [] order = list( pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in order]) self.assertEqual( [id(cdict), id(cdict[0]), id(cdict[1]), id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in descend.seen]) self.assertEqual( [id(cdict), id(cdict[0]), id(cdict[1]), id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None, '[1]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict), id(cdict[1])], [id(c) for c in descend.seen]) cdict.deactivate() def descend(x): descend.seen.append(x) return True descend.seen = [] order = list( pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual(len(descend.seen), 0) self.assertEqual(len(list(pmo.generate_names(cdict, active=True))), 0) def descend(x): descend.seen.append(x) return x.active descend.seen = [] order = list( pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual(len(descend.seen), 1) self.assertIs(descend.seen[0], cdict)
def test_preorder_traversal_descend_check(self): cdict, traversal = \ super(_TestActiveDictContainerBase, self).\ test_preorder_traversal_descend_check() cdict[1].deactivate() def descend(x): self.assertTrue(x._is_container) descend.seen.append(x) return not x._is_heterogeneous_container descend.seen = [] pmo.pprint(cdict) order = list(pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual([None, '[0]', '[2]'], [c.name for c in order]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None, '[0]', '[2]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None], [c.name for c in descend.seen]) self.assertEqual([id(cdict)], [id(c) for c in descend.seen]) def descend(x): self.assertTrue(x._is_container) descend.seen.append(x) return x.active and (not x._is_heterogeneous_container) descend.seen = [] order = list(pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual([None,'[0]','[1]','[2]'], [c.name for c in order]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None,'[0]','[1]','[2]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None,'[1]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict),id(cdict[1])], [id(c) for c in descend.seen]) cdict[1].deactivate(shallow=False) def descend(x): descend.seen.append(x) return not x._is_heterogeneous_container descend.seen = [] order = list(pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual([c.name for c in traversal if c.active], [c.name for c in order]) self.assertEqual([id(c) for c in traversal if c.active], [id(c) for c in order]) self.assertEqual([c.name for c in traversal if c.active and \ c._is_container], [c.name for c in descend.seen]) self.assertEqual([id(c) for c in traversal if c.active and \ c._is_container], [id(c) for c in descend.seen]) def descend(x): descend.seen.append(x) return x.active and (not x._is_heterogeneous_container) descend.seen = [] order = list(pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual([None,'[0]','[1]','[2]'], [c.name for c in order]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])], [id(c) for c in order]) if cdict.ctype._is_heterogeneous_container: self.assertEqual([None,'[0]','[1]','[2]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])], [id(c) for c in descend.seen]) else: self.assertEqual([None,'[1]'], [c.name for c in descend.seen]) self.assertEqual([id(cdict),id(cdict[1])], [id(c) for c in descend.seen]) cdict.deactivate() def descend(x): descend.seen.append(x) return True descend.seen = [] order = list(pmo.preorder_traversal(cdict, active=True, descend=descend)) self.assertEqual(len(descend.seen), 0) self.assertEqual(len(list(pmo.generate_names(cdict, active=True))), 0) def descend(x): descend.seen.append(x) return x.active descend.seen = [] order = list(pmo.preorder_traversal(cdict, active=None, descend=descend)) self.assertEqual(len(descend.seen), 1) self.assertIs(descend.seen[0], cdict)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. m, n = 3, 2 vlist = _create_variable_list(2) A = numpy.random.rand(m, n) ctuple = matrix_constraint(A, lb=1, ub=2, x=vlist) pmo.pprint(ctuple) b = block() b.c = ctuple pmo.pprint(ctuple) pmo.pprint(b) m = block() m.b = b pmo.pprint(ctuple) pmo.pprint(b) pmo.pprint(m)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. p = parameter() pprint(p) b = block() b.p = p pprint(p) pprint(b) m = block() m.b = b pprint(p) pprint(b) pprint(m)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. f = functional_value() pprint(f) b = block() b.f = f pprint(f) pprint(b) m = block() m.b = b pprint(f) pprint(b) pprint(m)
# @SOS_single # @SOS_dict m.sd = pmo.sos_dict() m.sd[1] = pmo.sos1(m.vd.values()) m.sd[2] = pmo.sos1(m.vl) # @SOS_dict # @SOS_list # uses 0-based indexing m.sl = pmo.sos_list() for i in m.s: m.sl.append(pmo.sos1([m.vl[i], m.vd[i]])) # @SOS_list # @Suffix_single m.dual = pmo.suffix(direction=pmo.suffix.IMPORT) # @Suffix_single # @Suffix_dict m.suffixes = pmo.suffix_dict() m.suffixes['dual'] = pmo.suffix(direction=pmo.suffix.IMPORT) # @Suffix_dict # @Piecewise_1d breakpoints = [1, 2, 3, 4] values = [1, 2, 1, 2] m.f = pmo.variable() m.pw = pmo.piecewise(breakpoints, values, input=m.v, output=m.f, bound='eq') # @Piecewise_1d pmo.pprint(m)
def test_pprint(self): # Not really testing what the output is, just that # an error does not occur. The pprint functionality # is still in the early stages. c = self._object_factory() pprint(c) b = block() b.c = c pprint(c) pprint(b) m = block() m.b = b pprint(c) pprint(b) pprint(m)
# @Suffix_single m.dual = pmo.suffix( direction=pmo.suffix.IMPORT) # @Suffix_single # @Suffix_dict m.suffixes = pmo.suffix_dict() m.suffixes['dual'] = pmo.suffix( direction=pmo.suffix.IMPORT) # @Suffix_dict # @Piecewise_1d breakpoints = [1,2,3,4] values = [1,2,1,2] m.f = pmo.variable() m.pw = pmo.piecewise( breakpoints, values, input=m.v, output=m.f, bound='eq') # @Piecewise_1d pmo.pprint(m)