[Numpy-discussion] Time for beta1 of NumPy 1.0 (original) (raw)

Sasha ndarray at mac.com
Fri Jun 30 18:10:05 EDT 2006


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

File `numpy/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 739

On 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 >



More information about the NumPy-Discussion mailing list