[SciPy-dev] Using doctest

Travis Oliphant oliphant at ee.byu.edu
Sun Oct 30 11:14:00 EST 2005


>Another point:
>Running the tests of newcore from "normal" python gives:
>
>[...]
>
>======================================================================
>ERROR: doctest of scipy.base.polynomial.test_polynomial
>----------------------------------------------------------------------
>Traceback (most recent call last):
>  File "/usr/lib/python2.3/unittest.py", line 423, in runTest
>    self.__testFunc()
>  File "/usr/lib/python2.3/doctest.py", line 1359, in runit
>    _utest(tester, name, doc, filename, lineno)
>  File "/usr/lib/python2.3/doctest.py", line 1309, in _utest
>    raise DocTestTestFailure('Failed doctest test for %s\n'
>DocTestTestFailure: Failed doctest test for
>scipy.base.polynomial.test_polynomial
>  File
>"/tmp/SCIPY3/INST/lib/python2.3/site-packages/scipy/base/tests/test_polynomial.py",
>line 1 (or above), in test_polynomial
>
>*****************************************************************
>Failure in example: p / q
>from line #28 of scipy.base.polynomial.test_polynomial
>Exception raised:
>Traceback (most recent call last):
>  File "/usr/lib/python2.3/doctest.py", line 442, in _run_examples_inner
>    compileflags, 1) in globs
>  File "<string>", line 1, in ?
>  File
>"/tmp/SCIPY3/INST//lib/python2.3/site-packages/scipy/base/polynomial.py",
>line 489, in __div__
>    return map(poly1d, polydiv(self.coeffs, other.coeffs))
>  File
>"/tmp/SCIPY3/INST//lib/python2.3/site-packages/scipy/base/polynomial.py",
>line 313, in polydiv
>    q, r = deconvolve(a1, a2)
>  File
>"/tmp/SCIPY3/INST//lib/python2.3/site-packages/scipy/base/polynomial.py",
>line 305, in deconvolve
>    quot = scipy.signal.lfilter(num, den, input)
>UnboundLocalError: local variable 'scipy' referenced before assignment
>
>
>The reason is the use of scipy.signal in polynomial.py,
>
>def deconvolve(signal, divisor):
>    """Deconvolves divisor out of signal.  Requires scipy.signal library
>    """
>    try:
>        import scipy.signal
>    except ImportError:
>        print "You need scipy.signal to use this function."
>    [...]
>
>This routine does not work if only newcore is installed.
>If I understood things correctly, newcore should
>be independent from newscipy, or?
>  
>

newcore should be installable, but there can be a few functions that 
require other scipy packages.  This is the appropriate way to handle it, 
I think.

The test for deconvolve should be moved over to scipy.signal or else an 
appropriate try block used.

-Travis






More information about the SciPy-Dev mailing list