New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dipy.test() fails on centos 6.x / python2.6 #688

Closed
hassemlal opened this Issue Jul 27, 2015 · 17 comments

Comments

Projects
None yet
5 participants
@hassemlal

hassemlal commented Jul 27, 2015

Hi,
I tried running the dipy test suite, but it returns multiple failures (see below). I am running on centos 6.5 with python2.6 and virtualenv.

$ python -c "import dipy; dipy.test()"
.................Running unit tests for dipy
NumPy version 1.9.2
NumPy is installed in /home/hassemlal/dipy/venv/lib/python2.6/site-packages/numpy
Python version 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
nose version 1.3.7

[clip]

.........SS.........
======================================================================
FAIL: dipy.core.tests.test_sphere.test_interp_rbf
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hassemlal/dipy/venv/lib/python2.6/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/hassemlal/dipy/dipy/core/tests/test_sphere.py", line 374, in test_interp_rbf
    nt.assert_(np.mean(np.abs(interp_data_a - expected)) < 0.1)
  File "/home/hassemlal/dipy/venv/lib/python2.6/site-packages/numpy/testing/utils.py", line 53, in assert_
    raise AssertionError(smsg)  
AssertionError

======================================================================
FAIL: dipy.reconst.tests.test_csdeconv.test_odfdeconv
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hassemlal/dipy/venv/lib/python2.6/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/hassemlal/dipy/dipy/reconst/tests/test_csdeconv.py", line 220, in test_odfdeconv
    assert_equal(len(w) > 0, False)
  File "/home/hassemlal/dipy/venv/lib/python2.6/site-packages/numpy/testing/utils.py", line 334, in assert_equal
    raise AssertionError(msg)   
AssertionError:
Items are not equal:
 ACTUAL: True
 DESIRED: False

======================================================================
FAIL: dipy.segment.tests.test_metric.test_metric_cosine
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hassemlal/dipy/venv/lib/python2.6/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/hassemlal/dipy/dipy/segment/tests/test_metric.py", line 177, in test_metric_cosine
    assert_equal(distance, 0.)  
AssertionError: array([[  4.74318692e-09]]) != 0.0

----------------------------------------------------------------------
Ran 451 tests in 1043.841s

FAILED (SKIP=9, failures=3)
@arokem

This comment has been minimized.

Member

arokem commented Jul 29, 2015

The RBF test failure is also reproduced on my laptop, mac OS 10.10 with Python 3.4

@arokem

This comment has been minimized.

Member

arokem commented Jul 29, 2015

@mih

This comment has been minimized.

Member

mih commented Aug 26, 2015

Hi,

the test_interp_rbf failure is currently holding up a bugfix upload to Debian. Build log with failure is here

https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=12;bug=785991;att=1;filename=dipy_0.9.2-2_amd64-20150825-2109.build

I already found the commit that is supposed to fix the other failure.

@arokem

This comment has been minimized.

Member

arokem commented Aug 26, 2015

Sorry for the delay on this one. For now, a little bit more information:
this happens upon upgrading from scipy 0.15 to scipy 0.16.

On Wed, Aug 26, 2015 at 12:20 PM, Michael Hanke notifications@github.com
wrote:

Hi,

the test_interp_rbf failure is currently holding up a bugfix upload to
Debian. Build log with failure is here

https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=12;bug=785991;att=1;filename=dipy_0.9.2-2_amd64-20150825-2109.build

I already found the commit that is supposed to fix the other failure.


Reply to this email directly or view it on GitHub
#688 (comment).

@arokem

This comment has been minimized.

Member

arokem commented Aug 26, 2015

This is happening when using the "angle" norm option:

download

@arokem

This comment has been minimized.

Member

arokem commented Aug 26, 2015

Here's the diff for the RBF code between scipy 0.15 and 0.16:

scipy/scipy@v0.15.0...v0.16.0diff-ab6ec58ea7c610075c487a649a4170e2R186

The only thing I can see that might be offensive is the treatment of epsilon. Digging into that.

@arokem

This comment has been minimized.

Member

arokem commented Aug 26, 2015

The change to this behavior changed here:

scipy/scipy#4643

As a solution to the problem described here:

scipy/scipy#4523

I'll ping the scipy dev list about this.

@arokem

This comment has been minimized.

Member

arokem commented Aug 26, 2015

Also relevant: scipy/scipy#2020

@arokem

This comment has been minimized.

arokem added a commit to arokem/dipy that referenced this issue Sep 1, 2015

BF: Keep up with changes in scipy 0.16
Recent changes in scipy use a different heuristic to find the epsilon
parameter used for RBF interpolation, causing for us issue nipy#688. This
should fix it, by using the old heuristic.
@stefanv

This comment has been minimized.

Contributor

stefanv commented Sep 2, 2015

@arokem Any idea why the new epsilon estimation (mean distance between nodes) is worse for our use case?

@arokem

This comment has been minimized.

Member

arokem commented Sep 2, 2015

Not a clue, but there seems to be some shakiness on the scipy side
surrounding this as well.

On Wed, Sep 2, 2015 at 11:39 AM, Stefan van der Walt <
notifications@github.com> wrote:

@arokem https://github.com/arokem Any idea why the new epsilon
estimation (mean distance between nodes) is worse for our use case?


Reply to this email directly or view it on GitHub
#688 (comment).

@stefanv

This comment has been minimized.

Contributor

stefanv commented Sep 2, 2015

Is this something we should look into? We can merge the current change, which will make dipy backward compatible with newer versions of scipy, or we can try to figure out a good heuristic.

@arokem

This comment has been minimized.

Member

arokem commented Sep 3, 2015

How about adding a few more tests to see whether this is indeed a good
heuristic for a few more test cases? Would that be enough, barring actual
deep understanding of what's going on here (which I will also attempt, but
can't promise to actually achieve...).

On Wed, Sep 2, 2015 at 2:49 PM, Stefan van der Walt <
notifications@github.com> wrote:

Is this something we should look into? We can merge the current change,
which will make dipy backward compatible with newer versions of scipy, or
we can try to figure out a good heuristic.


Reply to this email directly or view it on GitHub
#688 (comment).

@stefanv

This comment has been minimized.

Contributor

stefanv commented Sep 4, 2015

Excellent idea!

arokem added a commit to arokem/dipy that referenced this issue Sep 14, 2015

BF: Keep up with changes in scipy 0.16
Recent changes in scipy use a different heuristic to find the epsilon
parameter used for RBF interpolation, causing for us issue nipy#688. This
should fix it, by using the old heuristic.
@arokem

This comment has been minimized.

Member

arokem commented Oct 5, 2015

Hey @hassemlal - is this still an issue for you? Should be fixed through #707

@hassemlal

This comment has been minimized.

hassemlal commented Oct 15, 2015

Hi Ariel,
I gave it a try today on commit f0d46ce. The tests run fine, thank you for fixing it.

@hassemlal hassemlal closed this Oct 15, 2015

@Garyfallidis

This comment has been minimized.

Member

Garyfallidis commented Oct 15, 2015

Cool! Thx for the feedback @hassemlal. Let us know if you see anything else troubling you and what you think about the new DKI module. Does it work well for you? Take your time of course. Laterz!

arokem added a commit to arokem/dipy that referenced this issue Feb 1, 2016

BF: Keep up with changes in scipy 0.16
Recent changes in scipy use a different heuristic to find the epsilon
parameter used for RBF interpolation, causing for us issue nipy#688. This
should fix it, by using the old heuristic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment