From e3d9b2e36effba0863dbb350be2e6bc641cb0b76 Mon Sep 17 00:00:00 2001 From: Josh Burman Date: Tue, 19 Apr 2022 18:37:51 +0000 Subject: [PATCH] added yosh loop to test case --- app/test/test_example.py | 51 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/app/test/test_example.py b/app/test/test_example.py index 54b0caa..35ec4b6 100644 --- a/app/test/test_example.py +++ b/app/test/test_example.py @@ -1,4 +1,6 @@ # content of example.py +from pulp import LpProblem, LpVariable, LpMinimize, LpStatus, lpSum + def func(x): return x + 1 @@ -8,4 +10,51 @@ def test_pass(): def test_failure(): - assert func(3) == 5 \ No newline at end of file + assert func(3) == 5 + +def yosh_loop(): + Items = [1,2,3,4,5] + tif = { + 1: 0.2, + 2: 0.5, + 3: 0.3, + 4: 0.8, + 5: 0.1 + } + iif = { + 1: 0.09, + 2: 0.2, + 3: 0.113, + 4: 0.3, + 5: 0.1 + } + drift = 0.0 + drift_limit = 0.2 + iif_target = 0.5 + tif_target = 0.9 + item_vars = LpVariable.dicts("Item", Items, cat="Binary") + + while drift <= drift_limit: + prob = LpProblem("tif_tcc_test", LpMinimize) + prob += lpSum([(tif[i] + iif[i]) * item_vars[i] for i in Items]), "TifTccSum" + prob += lpSum([item_vars[i] for i in Items]) == 3, "TotalItems" + prob += lpSum([tif[i] * item_vars[i] for i in Items]) >= tif_target - (tif_target * drift), 'TifMin' + prob += lpSum([tif[i] * item_vars[i] for i in Items]) <= tif_target + (tif_target * drift), 'TifMax' + prob += lpSum([iif[i] * item_vars[i] for i in Items]) >= iif_target - (iif_target * drift), 'TccMin' + prob += lpSum([iif[i] * item_vars[i] for i in Items]) <= iif_target + (iif_target * drift), 'TccMax' + + prob.solve() + + if LpStatus[prob.status] == "Infeasible": + for v in prob.variables(): + print(v.name, "=", v.varValue) + + drift += 0.02 + else: + for v in prob.variables(): + print(v.name, "=", v.varValue) + break + +def test_solver(): + print(yosh_loop()) + assert yosh_loop() == 'Solved'