Changeset 3660


Ignore:
Timestamp:
02/18/11 20:02:31 (3 years ago)
Author:
jwatson
Message:

Cleaning up the Param getitem functionality and associated tests.

Location:
coopr.pyomo/trunk/coopr/pyomo
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • coopr.pyomo/trunk/coopr/pyomo/base/param.py

    r3617 r3660  
    8585        print >>ostream, "\tDomain="+self.domain.name 
    8686        if None in self.keys(): 
    87             print >>ostream, "\t", self._repn(None) 
     87            if self._constructed is True: 
     88               print >>ostream, "\t", self._repn(None) 
     89            else: 
     90               print >>ostream, "\t", "Not constructed" 
    8891        else: 
    8992            tmp=self._repn.keys(nondefault=True) 
  • coopr.pyomo/trunk/coopr/pyomo/base/param_repn.py

    r3434 r3660  
    138138        if key in self._index and self._default.value is not None: 
    139139            return self._default 
    140         if key is None: 
    141             return self._param 
     140        if key in self._index: 
     141            raise ValueError, "Legal key '%s' for parameter '%s', but value is uninitialized and there is no default value" % (key, self._param.name) 
    142142        raise KeyError, "Undefined key '%s' for parameter '%s'" % (key, self._param.name) 
    143143 
  • coopr.pyomo/trunk/coopr/pyomo/tests/unit/test_param.py

    r3617 r3660  
    106106 
    107107    def test_getitem(self): 
    108         """Check the use of getitem""" 
    109108        import coopr.pyomo.base.param 
    110109        #print 'xxx',self.instance.components.components() 
     
    141140        self.model.Z = Set(initialize=[1,3]) 
    142141        self.model.A = Param(self.model.Z, initialize={1:1.3}, repn=self.repn) 
    143         #print 'Z',type(self.model.A) 
    144         self.instance = self.model.create() 
    145         #print 'Z',type(self.instance.A) 
     142        self.instance = self.model.create() 
    146143 
    147144    def test_value(self): 
     
    238235 
    239236    def test_getitem(self): 
    240         """Check the use of getitem""" 
    241237        import coopr.pyomo.base.param 
    242238        try: 
    243             #print 'x',self.instance.A[None] 
    244             print self.instance.A 
    245             print self.instance.A._repn 
    246             print self.instance.A.repn_type 
    247             print self.instance.A._repn[None] 
    248             self.failUnlessEqual( self.instance.A[None], 1.3) 
     239            self.failUnlessEqual( self.instance.A[1], 1.3) 
    249240        except KeyError: 
    250             pass 
    251         else: 
    252           self.fail("test_getitem") 
     241           self.fail("test_getitem") 
     242 
    253243        if self.instance.components.A.repn_type == 'pyomo_dict': 
    254244            self.failUnlessEqual(type(self.instance.A[1]), coopr.pyomo.base.param._ParamValue) 
    255245        else: 
    256246            self.failUnlessEqual(type(self.instance.A[1]), float) 
    257         self.failUnlessEqual( self.instance.A[1], 1.3) 
    258         try: 
    259           self.failUnlessEqual( self.instance.A[3], 0) 
    260         except KeyError: 
    261           pass 
     247 
     248        try: 
     249            self.instance.A[3] 
     250        except ValueError: 
     251            pass 
    262252        else: 
    263253          self.fail("test_getitem") 
     
    302292 
    303293    def test_getitem(self): 
    304         """Check the use of getitem""" 
    305294        try: 
    306295            self.failUnlessEqual( self.instance.A[None], 0.0) 
     
    340329 
    341330    def test_getitem(self): 
    342         """Check the use of getitem""" 
    343331        try: 
    344332            self.failUnlessEqual( self.instance.A[None], 0.0) 
     
    385373 
    386374    def test_getitem(self): 
    387         """Check the use of getitem""" 
    388375        try: 
    389376            self.failUnlessEqual( self.instance.A[None], 0.0) 
Note: See TracChangeset for help on using the changeset viewer.