Re: [Matplotlib-users] @image_comparison decorator and unittests

2015-07-30 Thread Thomas Caswell
Paul Hobson expressed interest in making it easier to use the image
comparison tests out side of the mpl test suite

Tom

On Thu, Jul 30, 2015, 9:28 AM Fabien fabien.mauss...@gmail.com wrote:

 Hi all,

 is it possible to use the @image_comparison decorator for tests
 generated within a unittest.TestCase class?

 With my attempts so far the decorator was indeed instanicated at run
 time but the test was not called, i.e. the test would allways pass...
 Running the test with decorator from outside the class works fine.

 Any idea? Thanks,

 Fabien



 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] @image_comparison decorator and unittests

2015-07-30 Thread Jens Nielsen
Thomas Robitailles  pytest image comparison plugin might also be of
interest
https://github.com/astrofrog/pytest-mpl

Jens

tor. 30. jul. 2015 kl. 14.43 skrev Thomas Caswell tcasw...@gmail.com:


 Paul Hobson expressed interest in making it easier to use the image
 comparison tests out side of the mpl test suite

 Tom

 On Thu, Jul 30, 2015, 9:28 AM Fabien fabien.mauss...@gmail.com wrote:

 Hi all,

 is it possible to use the @image_comparison decorator for tests
 generated within a unittest.TestCase class?

 With my attempts so far the decorator was indeed instanicated at run
 time but the test was not called, i.e. the test would allways pass...
 Running the test with decorator from outside the class works fine.

 Any idea? Thanks,

 Fabien



 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] @image_comparison decorator and unittests

2015-07-30 Thread Fabien
Hi all,

is it possible to use the @image_comparison decorator for tests 
generated within a unittest.TestCase class?

With my attempts so far the decorator was indeed instanicated at run 
time but the test was not called, i.e. the test would allways pass... 
Running the test with decorator from outside the class works fine.

Any idea? Thanks,

Fabien


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Tex error in plot label

2015-07-30 Thread vijai
Have u tried ?

plt.ylabel(r'$\alpha$')



--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/Tex-error-in-plot-label-tp45964p45979.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] @image_comparison decorator and unittests

2015-07-30 Thread Paul Hobson
Fabien,

The @image_comparison operator is still somehwat of a black box for me. But
I can confirm your observation that it only works on top-level test
functions, not within a class.

It's on my long, and slowly shifting backlog of things to try to improve.
-paul


On Thu, Jul 30, 2015 at 6:47 AM, Jens Nielsen jenshniel...@gmail.com
wrote:

 Thomas Robitailles  pytest image comparison plugin might also be of
 interest
 https://github.com/astrofrog/pytest-mpl

 Jens

 tor. 30. jul. 2015 kl. 14.43 skrev Thomas Caswell tcasw...@gmail.com:


 Paul Hobson expressed interest in making it easier to use the image
 comparison tests out side of the mpl test suite

 Tom

 On Thu, Jul 30, 2015, 9:28 AM Fabien fabien.mauss...@gmail.com wrote:

 Hi all,

 is it possible to use the @image_comparison decorator for tests
 generated within a unittest.TestCase class?

 With my attempts so far the decorator was indeed instanicated at run
 time but the test was not called, i.e. the test would allways pass...
 Running the test with decorator from outside the class works fine.

 Any idea? Thanks,

 Fabien



 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] @image_comparison decorator and unittests

2015-07-30 Thread Fabien
Thank you all for your replies. It's not an urgent problem:

1. Jens gave us a link to an existing third party lib, althought it's 
not clear to me how it will work without pytest (i.e. with standard 
unittest).

2. My workaround is simply to use top level test functions as you 
suggest, and the rest works just fine.

It's already awesome enough to be able to test my plots in such an easy 
way!!!

Thanks a lot,

Fabien

On 07/30/2015 04:29 PM, Paul Hobson wrote:
 Fabien,

 The @image_comparison operator is still somehwat of a black box for me.
 But I can confirm your observation that it only works on top-level test
 functions, not within a class.

 It's on my long, and slowly shifting backlog of things to try to improve.
 -paul


 On Thu, Jul 30, 2015 at 6:47 AM, Jens Nielsen
 jenshniel...@gmail.com
 mailto:jenshniel...@gmail.com wrote:

 Thomas Robitailles  pytest image comparison plugin might also be of
 interest
 https://github.com/astrofrog/pytest-mpl

 Jens

 tor. 30. jul. 2015 kl. 14.43 skrev Thomas Caswell
 tcasw...@gmail.com
 mailto:tcasw...@gmail.com:


 Paul Hobson expressed interest in making it easier to use the
 image comparison tests out side of the mpl test suite

 Tom


 On Thu, Jul 30, 2015, 9:28 AM Fabien
 fabien.mauss...@gmail.com
 mailto:fabien.mauss...@gmail.com wrote:

 Hi all,

 is it possible to use the @image_comparison decorator for tests
 generated within a unittest.TestCase class?

 With my attempts so far the decorator was indeed
 instanicated at run
 time but the test was not called, i.e. the test would
 allways pass...
 Running the test with decorator from outside the class works
 fine.

 Any idea? Thanks,

 Fabien


 
 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 mailto:Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

 
 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 mailto:Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




 --



 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Misleading BoundaryNorm error

2015-07-30 Thread Fabien
On 07/29/2015 10:34 PM, Paul Hobson wrote:
 See the following example:

 import matplotlib as mpl
 c = mpl.cm.get_cmap()
 bnorm = mpl.colors.BoundaryNorm([0,1,2], c.N)
 nnorm = mpl.colors.Normalize(0, 2)

 # This works:
 In [8]: c(nnorm(1.1))
 Out[8]: (0.64199873497786197, 1.0, 0.32574320050600891, 1.0)

 # This doesn't:
 In [9]: c(bnorm(1.1))
 (...)
 TypeError: 'numpy.int16' object does not support item assignment

 # But this works:
 In [10]: c(bnorm([1.1]))
 Out[10]: array([[ 0.5,  0. ,  0. ,  1. ]])

   From the doc I would expect BoundaryNorm and Normalize to work the
 same
 way. I find the error sent by BoundaryNorm quite misleading.

 Should I fill a bug report for this?


 Fabien,

 What happens if your force the boundaries to floats? By that I mean:
 bnorm = mpl.colors.BoundaryNorm([0.0, 1.0, 2.0], c.N)
 -Paul

Thanks Paul,

it doesn't change anything. The problem is related to the variable iret 
which is of shape (): the assignment fails at L1281  in colors.py. Here 
is the code:

 def __call__(self, x, clip=None):
 if clip is None:
 clip = self.clip
 x = ma.asarray(x) # --- doesnt guarantee 1D
 mask = ma.getmaskarray(x)
 xx = x.filled(self.vmax + 1)
 if clip:
 np.clip(xx, self.vmin, self.vmax)
 iret = np.zeros(x.shape, dtype=np.int16) # --- x.shape = ()
 for i, b in enumerate(self.boundaries):
 iret[xx = b] = i
 if self._interp:
 scalefac = float(self.Ncmap - 1) / (self.N - 2)
 iret = (iret * scalefac).astype(np.int16)
 iret[xx  self.vmin] = -1  # --- error
 iret[xx = self.vmax] = self.Ncmap
 ret = ma.array(iret, mask=mask)
 if ret.shape == () and not mask:
 ret = int(ret)
 return ret

It should be easy to fix by changing
 iret = np.zeros(x.shape, dtype=np.int16)
to:
 iret = np.atleast1d(np.zeros(x.shape, dtype=np.int16))

But this would lead to an output which is never a scalar even if a 
scalar is given as input. Is that a problem?

Cheers,

Fabien



--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Misleading BoundaryNorm error

2015-07-30 Thread Eric Firing
Forcing the scalar to be a 1-element array would still leave the API
inconsistent with what you show for Normalize.  One solution is to
flag a scalar at the start, and then de-reference at the end.  Would
you like to submit a PR to take care of this?

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Misleading BoundaryNorm error

2015-07-30 Thread Fabien
On 07/30/2015 10:07 AM, Eric Firing wrote:
 Forcing the scalar to be a 1-element array would still leave the API
 inconsistent with what you show for Normalize.  One solution is to
 flag a scalar at the start, and then de-reference at the end.  Would
 you like to submit a PR to take care of this?

Hi,

my very first PR here:
https://github.com/matplotlib/matplotlib/pull/4824

Thanks,

Fabien


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users