#21012: doctest in game theory requires nash
-------------------------------------+-------------------------------------
       Reporter:  vdelecroix         |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  critical           |    Milestone:  sage-7.3
      Component:  packages:          |   Resolution:
  optional                           |
       Keywords:                     |    Merged in:
        Authors:  Vincent Delecroix  |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/vdelecroix/21012                 |  c09907134044a860f427bc87f0f4a68ff929bd71
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------
Description changed by mkoeppe:

Old description:

> On a fresh install of Sage with the package lrslib installed many
> doctests in `game_theory` fail.
> {{{
> Running doctests with ID 2016-07-13-05-05-59-2a599c24.
> Git branch: patchbot/ticket_merged
> Using
> --optional=4ti2,bliss,cbc,database_gap,gap_packages,igraph,lrslib,mpir,normaliz,nose,ore_algebra,patchbot,plantri,python2,qepcad,saclib,sage,threejs,tides
> Doctesting 9 files.
> sage -t --long --warn-long 62.7 game_theory/catalog_normal_form_games.py
> **********************************************************************
> File "game_theory/catalog_normal_form_games.py", line 12, in
> sage.game_theory.catalog_normal_form_games
> Failed example:
>     g.obtain_nash()
> Exception raised:
>     Traceback (most recent call last):
>       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
> packages/sage/doctest/forker.py", line 498, in _run
>         self.compile_and_execute(example, compiler, test.globs)
>       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
> packages/sage/doctest/forker.py", line 861, in compile_and_execute
>         exec(compiled, globs)
>       File "<doctest sage.game_theory.catalog_normal_form_games[2]>",
> line 1, in <module>
>         g.obtain_nash()
>       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
> packages/sage/game_theory/normal_form_game.py", line 1328, in obtain_nash
>         return self._solve_lrs(maximization)
>       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
> packages/sage/game_theory/normal_form_game.py", line 1400, in _solve_lrs
>         process = Popen(['nash', g1_name, g2_name], stdout=PIPE)
>       File "/home/vincent/sage_patchbot/local/lib/python/subprocess.py",
> line 710, in __init__
>         errread, errwrite)
>       File "/home/vincent/sage_patchbot/local/lib/python/subprocess.py",
> line 1335, in _execute_child
>         raise child_exception
>     OSError: [Errno 2] No such file or directory
> **********************************************************************
> ...
> ----------------------------------------------------------------------
> sage -t --long --warn-long 62.7 game_theory/catalog_normal_form_games.py
> # 19 doctests failed
> sage -t --long --warn-long 62.7 game_theory/normal_form_game.py  # 19
> doctests failed
> sage -t --long --warn-long 62.7 game_theory/parser.py  # 10 doctests
> failed
> }}}
> The reason is that the package `lrslib` provides the binary `lrsnash` but
> not `nash`. And the latter is used in called in `_solve_lrs` in the
> source code. Hence either the optional tag `# optional - lrslib` is wrong
> or `lrsnash` should be used.

New description:

 On a fresh install of Sage with the package lrslib installed many doctests
 in `game_theory` fail.
 {{{
 Running doctests with ID 2016-07-13-05-05-59-2a599c24.
 Git branch: patchbot/ticket_merged
 Using
 
--optional=4ti2,bliss,cbc,database_gap,gap_packages,igraph,lrslib,mpir,normaliz,nose,ore_algebra,patchbot,plantri,python2,qepcad,saclib,sage,threejs,tides
 Doctesting 9 files.
 sage -t --long --warn-long 62.7 game_theory/catalog_normal_form_games.py
 **********************************************************************
 File "game_theory/catalog_normal_form_games.py", line 12, in
 sage.game_theory.catalog_normal_form_games
 Failed example:
     g.obtain_nash()
 Exception raised:
     Traceback (most recent call last):
       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
 packages/sage/doctest/forker.py", line 498, in _run
         self.compile_and_execute(example, compiler, test.globs)
       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
 packages/sage/doctest/forker.py", line 861, in compile_and_execute
         exec(compiled, globs)
       File "<doctest sage.game_theory.catalog_normal_form_games[2]>", line
 1, in <module>
         g.obtain_nash()
       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
 packages/sage/game_theory/normal_form_game.py", line 1328, in obtain_nash
         return self._solve_lrs(maximization)
       File "/home/vincent/sage_patchbot/local/lib/python2.7/site-
 packages/sage/game_theory/normal_form_game.py", line 1400, in _solve_lrs
         process = Popen(['nash', g1_name, g2_name], stdout=PIPE)
       File "/home/vincent/sage_patchbot/local/lib/python/subprocess.py",
 line 710, in __init__
         errread, errwrite)
       File "/home/vincent/sage_patchbot/local/lib/python/subprocess.py",
 line 1335, in _execute_child
         raise child_exception
     OSError: [Errno 2] No such file or directory
 **********************************************************************
 ...
 ----------------------------------------------------------------------
 sage -t --long --warn-long 62.7 game_theory/catalog_normal_form_games.py
 # 19 doctests failed
 sage -t --long --warn-long 62.7 game_theory/normal_form_game.py  # 19
 doctests failed
 sage -t --long --warn-long 62.7 game_theory/parser.py  # 10 doctests
 failed
 }}}
 The reason is that the package `lrslib`, with version 061, renamed the
 `nash` executable to `lrsnash`.

--

--
Ticket URL: <https://trac.sagemath.org/ticket/21012#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to