From: Michael Orlitzky Date: Sun, 30 Oct 2016 17:38:31 +0000 (-0400) Subject: Add two more TODOs concerning failing tests. X-Git-Tag: 0.1.0~115 X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dunshire.git;a=commitdiff_plain;h=6f90e0a65e6775b153e6abd320232421dd90ba6f Add two more TODOs concerning failing tests. --- diff --git a/TODO b/TODO index d1773f6..ae41d67 100644 --- a/TODO +++ b/TODO @@ -8,3 +8,96 @@ 4. Come up with a fast heuristic (like making nu huge and taking e1 as our point) that finds a primal feasible point. +5. Fix the solve failures that we get in the translation tests. For example, + + ERROR: test_translation_orthant (test.symmetric_linear_game_test. + SymmetricLinearGameTest) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", + line 374, in test_translation_orthant + self.assert_translation_works(L, K, e1, e2) + File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", + line 361, in assert_translation_works + value2 = game2.solution().game_value() + File "/home/mjo/src/dunshire/dunshire/games.py", line 458, in solution + raise GameUnsolvableException(self, soln_dict) + dunshire.errors.GameUnsolvableException: Solution failed with result + "unknown." + The linear game (L, K, e1, e2) where + L = [352.0763359 267.0812248 300.8004888 307.8135853] + [429.8303135 324.8322824 361.6866231 372.1748983] + [390.6592961 286.8039007 320.7409227 330.1854235] + [316.0538913 247.7440818 276.9063990 274.9871772], + K = Nonnegative orthant in the real 4-space, + e1 = [7.7040001] + [9.4324457] + [8.3882819] + [6.8908420], + e2 = [8.5054325] + [6.4738132] + [7.2452437] + [7.3307357]. + CVXOPT returned: + dual infeasibility: 0.053819211766446585 + dual objective: -5.369636805607942 + dual slack: 2.105806354638527e-17 + gap: 2.6823510532777825e-16 + iterations: 11 + primal infeasibility: 4.71536776301359e-15 + primal objective: -5.3799616179161 + primal slack: 1.0328930392495263e-17 + relative gap: 4.985818196816016e-17 + residual as dual infeasibility certificate: 0.18587493201993227 + residual as primal infeasibility certificate: None + s: + [0.0115539] + [0.0000000] + [0.0000000] + [0.1230066] + [0.4837410] + [0.0000000] + [0.0000000] + [0.4044349] + status: unknown + x: + [ 5.3799616] + [ 0.0115539] + [-0.0000000] + [-0.0000000] + [ 0.1230066] + y: + [5.3696368] + z: + [0.0000000] + [0.4176330] + [0.6007564] + [0.0000000] + [0.0000000] + [0.0889310] + [0.0191076] + [0.0000000] + +6. Fix the math domain errors that sometimes pop up: + + ERROR: test_scaling_icecream (test.symmetric_linear_game_test + .SymmetricLinearGameTest) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", + line 336, in test_scaling_icecream + self.assert_scaling_works(L, K, e1, e2) + File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", + line 317, in assert_scaling_works + value2 = game2.solution().game_value() + File "/home/mjo/src/dunshire/dunshire/games.py", line 428, in solution + soln_dict = solvers.conelp(c, G, h, C.cvxopt_dims(), A, b) + File "/usr/lib64/python3.4/site-packages/cvxopt/coneprog.py", line 1395, + in conelp + misc.update_scaling(W, lmbda, ds, dz) + File "/usr/lib64/python3.4/site-packages/cvxopt/misc.py", line 510, + in update_scaling + ln = jnrm2(lmbda, n = m, offset = ind) + File "/usr/lib64/python3.4/site-packages/cvxopt/misc.py", line 856, in jnrm2 + return math.sqrt(x[offset] - a) * math.sqrt(x[offset] + a) + ValueError: math domain error