]> gitweb.michael.orlitzky.com - dunshire.git/commitdiff
Add two previously-failing examples as doctests for solution().
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 12 Nov 2016 12:53:35 +0000 (07:53 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 13 Nov 2016 20:19:27 +0000 (15:19 -0500)
dunshire/games.py
test/failures/01.py [deleted file]

index cfb62a33d8a2666828323019729af0f1b5ab99d7..719198b7007896c0eb68df23ab91d6456888fb12 100644 (file)
@@ -977,6 +977,44 @@ class SymmetricLinearGame:
               [2.506...]
               [0.000...]
 
+        This is another one that was difficult numerically, and caused
+        trouble even after we fixed the first two::
+
+            >>> from dunshire import *
+            >>> L = [[57.22233908627052301199, 41.70631373437460354126],
+            ...      [83.04512571985074487202, 57.82581810406928468637]]
+            >>> K = NonnegativeOrthant(2)
+            >>> e1 = [7.31887017043399268346, 0.89744171905822367474]
+            >>> e2 = [0.11099824781179848388, 6.12564670639315345113]
+            >>> SLG = SymmetricLinearGame(L,K,e1,e2)
+            >>> print(SLG.solution())
+            Game value: 70.437...
+            Player 1 optimal:
+              [9.009...]
+              [0.000...]
+            Player 2 optimal:
+              [0.136...]
+              [0.000...]
+
+        And finally, here's one that returns an "optimal" solution, but
+        whose primal/dual objective function values are far apart::
+
+            >>> from dunshire import *
+            >>> L = [[ 6.49260076597376212248, -0.60528030227678542019],
+            ...      [ 2.59896077096751731972, -0.97685530240286766457]]
+            >>> K = IceCream(2)
+            >>> e1 = [1, 0.43749513972645248661]
+            >>> e2 = [1, 0.46008379832200291260]
+            >>> SLG = SymmetricLinearGame(L, K, e1, e2)
+            >>> print(SLG.solution())
+            Game value: 11.596...
+            Player 1 optimal:
+              [ 1.852...]
+              [-1.852...]
+            Player 2 optimal:
+              [ 1.777...]
+              [-1.777...]
+
         """
         try:
             opts = {'show_progress': False}
diff --git a/test/failures/01.py b/test/failures/01.py
deleted file mode 100644 (file)
index e6658c8..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-from dunshire import *
-L = [[57.22233908627052301199, 41.70631373437460354126],
-     [83.04512571985074487202, 57.82581810406928468637]]
-K = NonnegativeOrthant(2)
-e1 = [7.31887017043399268346, 0.89744171905822367474]
-e2 = [0.11099824781179848388, 6.12564670639315345113]
-SLG = SymmetricLinearGame(L,K,e1,e2)