[Numpy-discussion] Time for beta1 of NumPy 1.0
Sasha
ndarray at mac.com
Fri Jun 30 16:49:53 EDT 2006
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._import_tools 235 175 74%
> numpy.add_newdocs 2 2 100%
> numpy.core 28 26 92%
> numpy.core.__svn_version__ 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.exec_command 409 27 6%
> numpy.distutils.info 2 2 100%
> numpy.distutils.log 37 18 48%
> numpy.distutils.misc_util 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.function_base 501 70 13%
> numpy.lib.getlimits 76 61 80%
> numpy.lib.index_tricks 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.shape_base 220 24 10%
> numpy.lib.twodim_base 77 51 66%
> numpy.lib.type_check 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