Skip to content

Commit

Permalink
clean up unit tests for generators and solvers. need to return the po…
Browse files Browse the repository at this point in the history
…wer system object to keep the weakrefs alive. add a str representation for the OptimizationProblem.
  • Loading branch information
adamgreenhall committed Apr 25, 2012
1 parent b051427 commit 796e6ab
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion minpower/config.py
Expand Up @@ -96,6 +96,6 @@
default_hours_commitment_overlap=0 default_hours_commitment_overlap=0
optimization_package='coopr' #'pulp' optimization_package='coopr' #'pulp'


optimization_solver='gurobi' optimization_solver='glpk'
available_solvers = ['glpk','gurobi']#['glpk','gurobi','cplex'] available_solvers = ['glpk','gurobi']#['glpk','gurobi','cplex']
logging_level= logging.INFO logging_level= logging.INFO
1 change: 1 addition & 0 deletions minpower/optimization.py
Expand Up @@ -335,6 +335,7 @@ def resolvefixvariables(instance,results):
#self.variables = instance.active_components(pyomo.Var) #self.variables = instance.active_components(pyomo.Var)


return return
def __str__(self): return 'power_system_problem'


def value(variable): def value(variable):
''' '''
Expand Down
14 changes: 7 additions & 7 deletions minpower/tests/generators.py
Expand Up @@ -26,9 +26,8 @@ def power_maximum():
make_cheap_gen(Pmax=Pmax), make_cheap_gen(Pmax=Pmax),
make_expensive_gen() make_expensive_gen()
] ]
solve_problem(generators,**make_loads_times(Pd)) power_system,times=solve_problem(generators,**make_loads_times(Pd))

assert generators[0].power(times[0]) == Pmax
assert generators[0].power(singletime[0]) == Pmax


@generation.test @generation.test
def power_minimum(): def power_minimum():
Expand All @@ -43,8 +42,8 @@ def power_minimum():
make_cheap_gen(), make_cheap_gen(),
make_expensive_gen(Pmin=Pmin) make_expensive_gen(Pmin=Pmin)
] ]
solve_problem(generators,**make_loads_times(Pd)) power_system,times=solve_problem(generators,**make_loads_times(Pd))
assert generators[1].power(singletime[0]) == Pmin assert generators[1].power(times[0]) == Pmin


@generation.test @generation.test
def ramp_up(): def ramp_up():
Expand All @@ -60,6 +59,7 @@ def ramp_up():
] ]
initial = [{'P':250},{'P':250}] initial = [{'P':250},{'P':250}]
_,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[250,350])) _,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[250,350]))
print generators[1]._parent_problem()
assert generators[0].power(times[1]) - generators[0].power(times[0]) == ramp_limit assert generators[0].power(times[1]) - generators[0].power(times[0]) == ramp_limit


@generation.test @generation.test
Expand Down Expand Up @@ -94,7 +94,7 @@ def ramp_up_initial():
initial = [{'P':250},{'P':250}] initial = [{'P':250},{'P':250}]


_,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[350,350])) _,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[350,350]))
ramp_rate = generators[0].power(times[0]) - generators[0].power(times.initialTime) ramp_rate = generators[0].power(times[0]) - generators[0].initial_power
assert ramp_rate == ramp_limit assert ramp_rate == ramp_limit




Expand All @@ -112,7 +112,7 @@ def ramp_down_initial():
initial = [{'P':250},{'P':250}] initial = [{'P':250},{'P':250}]


_,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[300,300])) _,times=solve_problem(generators,gen_init=initial,**make_loads_times(Pdt=[300,300]))
ramp_rate = generators[1].power(times[0]) - generators[1].power(times.initialTime) ramp_rate = generators[1].power(times[0]) - generators[1].initial_power
assert ramp_rate == ramp_limit assert ramp_rate == ramp_limit




Expand Down
9 changes: 4 additions & 5 deletions minpower/tests/solvers.py
Expand Up @@ -11,12 +11,11 @@
logging.basicConfig( level=logging.INFO, format='%(levelname)s: %(message)s') logging.basicConfig( level=logging.INFO, format='%(levelname)s: %(message)s')


tracker=ClassTracker() tracker=ClassTracker()
for cls in [pyomo.ConcreteModel,pyomo.Var,pyomo.base.var._VarElement, for cls in [pyomo.ConcreteModel,pyomo.Var,pyomo.base.var._VarElement,pyomo.Constraint,optimization.OptimizationProblem]:
pyomo.Constraint,optimization.Problem]:
tracker.track_class(cls) tracker.track_class(cls)


def simple_problem(): def simple_problem():
prob=optimization.newProblem() prob=optimization.OptimizationProblem()
tracker.create_snapshot('prob. init') tracker.create_snapshot('prob. init')
x= optimization.new_variable('x',low=0,high=3) x= optimization.new_variable('x',low=0,high=3)
y= optimization.new_variable('y',low=0,high=1) y= optimization.new_variable('y',low=0,high=1)
Expand All @@ -31,9 +30,9 @@ def simple_problem():


def test_one_solver(solver_name): def test_one_solver(solver_name):
prob=simple_problem() prob=simple_problem()
prob.solve(solver=solver_name) prob.solve(solver=solver_name,get_duals=False)
tracker.create_snapshot('prob. solved') tracker.create_snapshot('prob. solved')
status=prob.status status=prob.solved
del prob del prob
tracker.create_snapshot('prob. deleted') tracker.create_snapshot('prob. deleted')
if solver_name=='glpk': if solver_name=='glpk':
Expand Down

0 comments on commit 796e6ab

Please sign in to comment.