[Numpy-discussion] Time for beta1 of NumPy 1.0 (original) (raw)
Sasha ndarray at mac.com
Fri Jun 30 18:21:21 EDT 2006
- Previous message (by thread): [Numpy-discussion] ***[Possible UCE]*** Re: Time for beta1 of NumPy 1.0
- Next message (by thread): [Numpy-discussion] Time for beta1 of NumPy 1.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Software developers also use coverage testing in concert with testsuites, to make sure software is actually good enough for a release. " -- Gcov Manual
I think if we can improve the test coverage, it will speak volumes about the quality of numpy. Does anyone know if it is possible to instrument numpy libraries without having to instrument python itself?
It would be nice to make the coverage reports easily available either by including a generating script with the source distribution or by publishing the reports for the releases.
On 6/30/06, Sasha <ndarray at mac.com> wrote:
It is not as bad as I thought, but there is certainly room for improvement.
File
numpy/core/src/multiarraymodule.c'_ _Lines executed:63.56% of 3290_ _File
numpy/core/src/arrayobject.c' Lines executed:59.70% of 5280 Filenumpy/core/src/scalartypes.inc.src'_ _Lines executed:31.67% of 963_ _File
numpy/core/src/arraytypes.inc.src' Lines executed:47.35% of 868 File `numpy/core/src/arraymethods.c' Lines executed:57.65% of 739On 6/30/06, Sasha <ndarray at mac.com> wrote: > As soon as I sent out my 10% estimate, I realized that someone will > challenge it with a python level coverage statistics. My main concern > is not what fraction of numpy functions is called by unit tests, but > what fraction of special cases in the C code is exercised. I am not > sure that David's statistics even answers the first question - I would > guess it only counts statements in the pure python methods and > ignores methods implemented in C. > > Can someone post C-level statistics from gcov > <http://gcc.gnu.org/onlinedocs/gcc/Gcov.html> or a similar tool? > > On 6/30/06, David M. Cooke <cookedm at physics.mcmaster.ca> wrote: > > On Fri, 30 Jun 2006 12:35:35 -0400 > > Sasha <ndarray at mac.com> wrote: > > > > > On 6/30/06, Fernando Perez <fperez.net at gmail.com> wrote: > > > > ... > > > > Besides, decent unit tests will catch these problems. We all know > > > > that every scientific code in existence is unit tested to the smallest > > > > routine, so this shouldn't be a problem for anyone. > > > > > > Is this a joke? Did anyone ever measured the coverage of numpy > > > unittests? I would be surprized if it was more than 10%. > > > > A very quick application of the coverage module, available at > > http://www.garethrees.org/2001/12/04/python-coverage/ > > gives me 41%: > > > > Name Stmts Exec Cover > > --------------------------------------------------- > > numpy 25 20 80% > > numpy.importtools 235 175 74% > > numpy.addnewdocs 2 2 100% > > numpy.core 28 26 92% > > numpy.core.svnversion 1 1 100% > > numpy.core.internal 99 48 48% > > numpy.core.arrayprint 251 92 36% > > numpy.core.defchararray 221 58 26% > > numpy.core.defmatrix 259 186 71% > > numpy.core.fromnumeric 319 153 47% > > numpy.core.info 3 3 100% > > numpy.core.ma 1612 1145 71% > > numpy.core.memmap 64 14 21% > > numpy.core.numeric 323 138 42% > > numpy.core.numerictypes 236 204 86% > > numpy.core.records 272 32 11% > > numpy.dft 6 4 66% > > numpy.dft.fftpack 128 31 24% > > numpy.dft.helper 35 32 91% > > numpy.dft.info 3 3 100% > > numpy.distutils 13 9 69% > > numpy.distutils.version 4 4 100% > > numpy.distutils.ccompiler 296 49 16% > > numpy.distutils.execcommand 409 27 6% > > numpy.distutils.info 2 2 100% > > numpy.distutils.log 37 18 48% > > numpy.distutils.miscutil 945 174 18% > > numpy.distutils.unixccompiler 34 11 32% > > numpy.dual 41 27 65% > > numpy.f2py.info 2 2 100% > > numpy.lib 30 28 93% > > numpy.lib.arraysetops 121 59 48% > > numpy.lib.functionbase 501 70 13% > > numpy.lib.getlimits 76 61 80% > > numpy.lib.indextricks 223 56 25% > > numpy.lib.info 4 4 100% > > numpy.lib.machar 174 154 88% > > numpy.lib.polynomial 357 52 14% > > numpy.lib.scimath 51 19 37% > > numpy.lib.shapebase 220 24 10% > > numpy.lib.twodimbase 77 51 66% > > numpy.lib.typecheck 110 75 68% > > numpy.lib.ufunclike 37 24 64% > > numpy.lib.utils 42 23 54% > > numpy.linalg 5 3 60% > > numpy.linalg.info 2 2 100% > > numpy.linalg.linalg 440 71 16% > > numpy.random 10 6 60% > > numpy.random.info 4 4 100% > > numpy.testing 3 3 100% > > numpy.testing.info 2 2 100% > > numpy.testing.numpytest 430 214 49% > > numpy.testing.utils 151 62 41% > > numpy.version 7 7 100% > > --------------------------------------------------- > > TOTAL 8982 3764 41% > > > > (I filtered out all the .tests. modules). Note that you have to import > > numpy after starting the coverage, because we use a lot of module-level code > > that wouldn't be caught otherwise. > > > > -- _> > |>|/|<_ _> > /--------------------------------------------------------------------------_ > > |David M. Cooke http://arbutus.physics.mcmaster.ca/dmc/ > > |cookedm at physics.mcmaster.ca > > >
- Previous message (by thread): [Numpy-discussion] ***[Possible UCE]*** Re: Time for beta1 of NumPy 1.0
- Next message (by thread): [Numpy-discussion] Time for beta1 of NumPy 1.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]