Changeset 4535


Ignore:
Timestamp:
08/01/11 15:53:40 (3 years ago)
Author:
zbfried
Message:

Separated out tests for gurobi and cplex python interfaces from respective tests for nl interfaces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • coopr.pyomo/trunk/coopr/pyomo/tests/io/test_writers.py

    r4532 r4535  
    99    asl = coopr.plugins.mip.ASL(keepFiles=True, options={'solver':'cplexamp'}) 
    1010    cplexamp_available = cplex_available and (not asl.executable() is None) and asl.available(False) 
     11    try: 
     12        import cplex 
     13        cplexpy_available = True 
     14    except pyutilib.common.ApplicationError: 
     15        cplexpy_available = False 
    1116except pyutilib.common.ApplicationError: 
    1217    cplexamp_available=False 
     
    1722    asl = coopr.plugins.mip.ASL(keepFiles=True, options={'solver':'gurobi_ampl'}) 
    1823    gurobi_ampl_available = gurobi_available and (not asl.executable() is None) and asl.available(False) 
     24    try: 
     25        import gurobipy 
     26        gurobi_py_available = True 
     27    except pyutilib.common.ApplicationError: 
     28        gurobi_py_available = False 
    1929except pyutilib.common.ApplicationError: 
    2030    gurobi_ampl_available=False 
     
    2333 
    2434    @unittest.skipIf(not (cplex_available and cplexamp_available),"The 'cplex' executable is not available") 
    25     def testCPLEX(self): 
     35    def testCPLEXnl(self): 
    2636        instancelp=model.create() 
    2737        instancenl=model.create() 
    28         instancepy=model.create() 
    2938 
    3039        optlp=SolverFactory("cplex",solver_io="lp") 
    3140        optnl=SolverFactory("cplex",solver_io="nl") 
    32         optpy=SolverFactory("cplex",solver_io="python") 
    3341 
    3442        resultslp=optlp.solve(instancelp) 
    3543        resultsnl=optnl.solve(instancenl) 
    36         resultspy=optpy.solve(instancepy) 
    3744 
    3845        instancelp.load(resultslp) 
    3946        instancenl.load(resultsnl) 
    40         instancepy.load(resultspy) 
    4147         
    4248        self.assertEqual(instancelp.obj(),instancenl.obj()) 
    4349        for i in instancelp.variables(): 
    4450            self.assertEqual(instancelp.variables()[i](),instancenl.variables()[i]()) 
     51 
     52    @unittest.skipIf(not (cplex_available and cplexpy_available),"The 'cplex' python interface is not available") 
     53    def testCPLEXpy(self): 
     54        instancelp=model.create() 
     55        instancepy=model.create() 
     56 
     57        optlp=SolverFactory("cplex",solver_io="lp") 
     58        optpy=SolverFactory("cplex",solver_io="python") 
     59 
     60        resultslp=optlp.solve(instancelp) 
     61        resultspy=optpy.solve(instancepy) 
     62 
     63        instancelp.load(resultslp) 
     64        instancepy.load(resultspy) 
     65         
    4566        self.assertEqual(instancelp.obj(),instancepy.obj()) 
    4667        for i in instancelp.variables(): 
     
    4869 
    4970    @unittest.skipIf(not (gurobi_available and gurobi_ampl_available),"The 'gurobi executable is not available")  
    50     def testGUROBI(self): 
     71    def testGUROBInl(self): 
    5172        instancelp=model.create() 
    5273        instancenl=model.create() 
    53         instancepy=model.create() 
    5474 
    55         #Deactivate quadratic constraints -- gurobi currently doesn't support those 
     75        #Deactivate quadratic constraints -- gurobi currently doesn't support those 
    5676        instancelp.constr.active = False 
    57         instancelp.preprocess() 
     77        instancelp.preprocess() 
    5878        instancenl.constr.active = False 
    59         instancenl.preprocess() 
    60         instancepy.constr.active = False 
    61         instancepy.preprocess() 
     79        instancenl.preprocess() 
    6280 
    6381        optlp=SolverFactory("gurobi",solver_io="lp") 
    64         optnl=SolverFactory("gurobi",solver_io="nl") 
    65         optpy=SolverFactory("gurobi",solver_io="python") 
     82        optnl=SolverFactory("gurobi_ampl",solver_io="nl") 
    6683 
    6784        resultslp=optlp.solve(instancelp) 
    6885        resultsnl=optnl.solve(instancenl) 
    69         resultspy=optpy.solve(instancepy) 
    7086 
    7187        instancelp.load(resultslp) 
    7288        instancenl.load(resultsnl) 
    73         instancepy.load(resultspy) 
    7489         
    7590        self.assertEqual(instancelp.obj(),instancenl.obj()) 
    7691        for i in instancelp.variables(): 
    7792            self.assertEqual(instancelp.variables()[i](),instancenl.variables()[i]()) 
     93 
     94   @unittest.skipIf(not (gurobi_available and gurobi_py_available),"The 'gurobi python interface is not available")  
     95    def testGUROBIpy(self): 
     96        instancelp=model.create() 
     97        instancepy=model.create() 
     98 
     99        #Deactivate quadratic constraints -- gurobi currently doesn't support those 
     100        instancelp.constr.active = False 
     101        instancelp.preprocess() 
     102        instancepy.constr.active = False 
     103        instancepy.preprocess() 
     104 
     105        optlp=SolverFactory("gurobi",solver_io="lp") 
     106        optpy=SolverFactory("gurobi",solver_io="python") 
     107 
     108        resultslp=optlp.solve(instancelp) 
     109        resultspy=optpy.solve(instancepy) 
     110 
     111        instancelp.load(resultslp) 
     112        instancepy.load(resultspy) 
     113         
    78114        self.assertEqual(instancelp.obj(),instancepy.obj()) 
    79115        for i in instancelp.variables(): 
Note: See TracChangeset for help on using the changeset viewer.