[Numpy-discussion] Time for beta1 of NumPy 1.0

Sasha ndarray at mac.com
Fri Jun 30 17:10:05 CDT 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._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