From 299bf2d606eb245ec78f2e20826836c0bb5bfc07 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 1 Nov 2016 18:49:56 -0400 Subject: [PATCH] Use "..." for floating point output in doctests. --- TODO | 3 --- dunshire/errors.py | 4 ++-- dunshire/games.py | 36 ++++++++++++++++++------------------ dunshire/matrices.py | 6 +++--- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/TODO b/TODO index 48d4bd3..ec352e3 100644 --- a/TODO +++ b/TODO @@ -138,9 +138,6 @@ AssertionError: False is not true -8. Fix floating point comparisons in the doctest output. - - 12. Investigate this test failure too. It looks like it was really close to being solved, but we would have needed a fudge factor of three instead of two. diff --git a/dunshire/errors.py b/dunshire/errors.py index 7cd8342..424f3e6 100644 --- a/dunshire/errors.py +++ b/dunshire/errors.py @@ -91,7 +91,7 @@ class GameUnsolvableException(Exception): [0.1000000], e2 = [3.0000000] [0.1000000], - Condition((L, K, e1, e2)) = 4.155638. + Condition((L, K, e1, e2)) = 4.155... CVXOPT returned: dual infeasibility: None dual objective: 1.0 @@ -192,7 +192,7 @@ class PoorScalingException(Exception): [0.1000000], e2 = [3.0000000] [0.1000000], - Condition((L, K, e1, e2)) = 4.155638. + Condition((L, K, e1, e2)) = 4.155... """ def __init__(self, game): diff --git a/dunshire/games.py b/dunshire/games.py index e25db28..1f672ab 100644 --- a/dunshire/games.py +++ b/dunshire/games.py @@ -222,7 +222,7 @@ class SymmetricLinearGame: e2 = [ 1] [ 2] [ 3], - Condition((L, K, e1, e2)) = 31.834895. + Condition((L, K, e1, e2)) = 31.834... Lists can (and probably should) be used for every argument:: @@ -241,7 +241,7 @@ class SymmetricLinearGame: [ 1], e2 = [ 1] [ 1], - Condition((L, K, e1, e2)) = 1.707107. + Condition((L, K, e1, e2)) = 1.707... The points ``e1`` and ``e2`` can also be passed as some other enumerable type (of the correct length) without much harm, since @@ -264,7 +264,7 @@ class SymmetricLinearGame: [ 1], e2 = [ 1] [ 1], - Condition((L, K, e1, e2)) = 1.707107. + Condition((L, K, e1, e2)) = 1.707... However, ``L`` will always be intepreted as a list of rows, even if it is passed as a :class:`cvxopt.base.matrix` which is @@ -286,7 +286,7 @@ class SymmetricLinearGame: [ 1], e2 = [ 1] [ 1], - Condition((L, K, e1, e2)) = 6.073771. + Condition((L, K, e1, e2)) = 6.073... >>> L = cvxopt.matrix(L) >>> print(L) [ 1 3] @@ -302,7 +302,7 @@ class SymmetricLinearGame: [ 1], e2 = [ 1] [ 1], - Condition((L, K, e1, e2)) = 6.073771. + Condition((L, K, e1, e2)) = 6.073... """ def __init__(self, L, K, e1, e2): @@ -419,13 +419,13 @@ class SymmetricLinearGame: >>> print(SLG.solution()) Game value: -6.1724138 Player 1 optimal: - [ 0.5517241] - [-0.0000000] - [ 0.4482759] + [ 0.551...] + [-0.000...] + [ 0.448...] Player 2 optimal: - [0.4482759] - [0.0000000] - [0.5517241] + [0.448...] + [0.000...] + [0.551...] The value of the following game can be computed using the fact that the identity is invertible:: @@ -439,13 +439,13 @@ class SymmetricLinearGame: >>> print(SLG.solution()) Game value: 0.0312500 Player 1 optimal: - [0.0312500] - [0.0625000] - [0.0937500] + [0.031...] + [0.062...] + [0.093...] Player 2 optimal: - [0.1250000] - [0.1562500] - [0.1875000] + [0.125...] + [0.156...] + [0.187...] """ # The cone "C" that appears in the statement of the CVXOPT @@ -586,7 +586,7 @@ class SymmetricLinearGame: e2 = [ 1] [ 1] [ 1], - Condition((L, K, e1, e2)) = 44.476765. + Condition((L, K, e1, e2)) = 44.476... """ # We pass ``self._L`` right back into the constructor, because diff --git a/dunshire/matrices.py b/dunshire/matrices.py index 94f841d..6d5bbc8 100644 --- a/dunshire/matrices.py +++ b/dunshire/matrices.py @@ -330,12 +330,12 @@ def norm(matrix_or_vector): -------- >>> v = matrix([1,1]) - >>> print('{:.5f}'.format(norm(v))) - 1.41421 + >>> norm(v) + 1.414... >>> A = matrix([1,1,1,1], (2,2)) >>> norm(A) - 2.0 + 2.0... """ return sqrt(inner_product(matrix_or_vector, matrix_or_vector)) -- 2.44.2