Sage Doc Day 3

Saturday, August 30, 2008

We will focus mostly on doctests Doc Days 3. Our goal is to raise the coverage score for the Sage library to 60%, since this is a central goal for September. We need about 460 new doctests to get to 60% coverage (compared to mabshoff's 3.1.2.alpha3 merge tree as of 10am PST)

Meetups

Names

Add your name here if you're going to be involved, and mention what Sage module you're going to work on!

Modules

Coverage scores by module for sage-3.1.2.alpha2 I made this with the following script run in devel/sage/sage/:

import os
for D in os.listdir('.'):
    if os.path.isdir(D):
        cmd = "cd %s; sage -coverage .|tail -2"%D
        r = os.popen(cmd).read()
        r = r.lstrip()
        print D.upper() + ": " + r

PROBABILITY: Overall weighted coverage score:  3.0%
Total number of functions:  30

GRAPHS: Overall weighted coverage score:  94.6%
Total number of functions:  478

MISC: Overall weighted coverage score:  45.5%
Total number of functions:  641

PLOT: Overall weighted coverage score:  23.2%
Total number of functions:  626

CATEGORIES: Overall weighted coverage score:  14.4%
Total number of functions:  313

STATS: Overall weighted coverage score:  100.0%
Total number of functions:  41

CRYPTO: Overall weighted coverage score:  69.5%
Total number of functions:  220

GAMES: Overall weighted coverage score:  33.0%
Total number of functions:  3

ALGEBRAS: Overall weighted coverage score:  41.9%
Total number of functions:  313

FINANCE: Overall weighted coverage score:  100.0%
Total number of functions:  85

TESTS: Overall weighted coverage score:  0.0%
Total number of functions:  135

GEOMETRY: Overall weighted coverage score:  87.7%
Total number of functions:  131

CODING: Overall weighted coverage score:  84.9%
Total number of functions:  150

GSL: Overall weighted coverage score:  29.9%
Total number of functions:  80

LFUNCTIONS: Overall weighted coverage score:  52.0%
Total number of functions:  38

PARALLEL: Overall weighted coverage score:  75.0%
Total number of functions:  8

COMBINAT: Overall weighted coverage score:  97.5%
Total number of functions:  2682

QUADRATIC_FORMS: Overall weighted coverage score:  32.0%
Total number of functions:  50

MONOIDS: Overall weighted coverage score:  54.8%
Total number of functions:  87

FUNCTIONS: Overall weighted coverage score:  58.1%
Total number of functions:  412

LIBS: Overall weighted coverage score:  58.1%
Total number of functions:  1116

CALCULUS: Overall weighted coverage score:  53.2%
Total number of functions:  511

MATRIX: Overall weighted coverage score:  64.2%
Total number of functions:  722

SCHEMES: Overall weighted coverage score:  49.3%
Total number of functions:  863

INTERFACES: Overall weighted coverage score:  39.5%
Total number of functions:  1183

SERVER: Overall weighted coverage score:  28.3%
Total number of functions:  995

RINGS: Overall weighted coverage score:  58.1%
Total number of functions:  5267

GROUPS: Overall weighted coverage score:  59.3%
Total number of functions:  462

MEDIA: Overall weighted coverage score:  0.0%
Total number of functions:  26

CATALOGUE:
SETS: Overall weighted coverage score:  81.2%
Total number of functions:  72

NUMERICAL: Overall weighted coverage score:  85.0%
Total number of functions:  7

DATABASES: Overall weighted coverage score:  19.3%
Total number of functions:  221

LOGIC: Overall weighted coverage score:  16.0%
Total number of functions:  18

MODULES: Overall weighted coverage score:  67.8%
Total number of functions:  413

STRUCTURE: Overall weighted coverage score:  35.4%
Total number of functions:  577

EXT: Overall weighted coverage score:  60.1%
Total number of functions:  78

MODULAR: Overall weighted coverage score:  67.2%
Total number of functions:  1347

Files with 0% Coverage

The snapshot is from 3.1.2.alpha2. interfaces looks much better in the soon to be released 3.1.2.alpha3.

These are all candidates for buggy/dead code.

algebras/quaternion_order_element.py: 0% (0 of 8)
algebras/quaternion_order_ideal.py: 0% (0 of 6)
algebras/algebra_order_frac_ideal.py: 0% (0 of 17)
algebras/all.py: 0% (0 of 1)
algebras/algebra_order_ideal.py: 0% (0 of 21)
algebras/free_algebra_quotient_element.py: 0% (0 of 13)
algebras/algebra_ideal.py: 0% (0 of 19)
algebras/algebra_order_element.py: 0% (0 of 13)
algebras/algebra_order_ideal_element.py: 0% (0 of 1)
algebras/algebra_ideal_element.py: 0% (0 of 1)
algebras/quaternion_order_ideal_element.py: 0% (0 of 1)
algebras/algebra_element.py: 0% (0 of 1)
algebras/quaternion_order.py: 0% (0 of 9)
algebras/algebra_order.py: 0% (0 of 16)
all_cmdline.py: 0% (0 of 1)
all.py: 0% (0 of 2)
categories/action.pyx: 0% (0 of 31)
categories/morphism.pyx: 0% (0 of 21)
combinat/posets/lattices.py: 0% (0 of 13)
crypto/cryptosystem.py: 0% (0 of 9)
crypto/mq/mpolynomialsystemgenerator.py: 0% (0 of 10)
crypto/cipher.py: 0% (0 of 9)
databases/install.py: 0% (0 of 8)
databases/conway.py: 0% (0 of 7)
databases/tables.py: 0% (0 of 6)
databases/stein_watkins.py: 0% (0 of 15)
databases/lincodes.py: 0% (0 of 1)
databases/compressed_storage.py: 0% (0 of 7)
databases/kohel.py: 0% (0 of 7)
databases/symbolic_data.py: 0% (0 of 7)
databases/db.py: 0% (0 of 21)
databases/odlyzko.py: 0% (0 of 1)
databases/conv.py: 0% (0 of 8)
databases/bz2Pickle.py: 0% (0 of 4)
databases/gamma0wt2.py: 0% (0 of 7)
databases/db_modular_polynomials.py: 0% (0 of 11)
ext/sig.pyx: 0% (0 of 1)
ext/multi_modular.pyx: 0% (0 of 15)
ext/arith.pyx: 0% (0 of 7)
functions/spike_function.py: 0% (0 of 9)
graphs/linearextensions.py: 0% (0 of 7)
groups/pari_group.py: 0% (0 of 7)
groups/matrix_gps/homset.py: 0% (0 of 3)
groups/group_homset.py: 0% (0 of 6)
gsl/ode.pyx: 0% (0 of 5)
gsl/interpolation.pyx: 0% (0 of 9)
gsl/gsl_array.pyx: 0% (0 of 6)
gsl/callback.pyx: 0% (0 of 1)
interfaces/get_sigs.py: 0% (0 of 3)
interfaces/mupad.py: 0% (0 of 29)
interfaces/lisp.py: 0% (0 of 32)
interfaces/tests.py: 0% (0 of 3)
interfaces/gnuplot.py: 0% (0 of 11)
interfaces/cleaner.py: 0% (0 of 2)
interfaces/povray.py: 0% (0 of 3)
interfaces/gfan.py: 0% (0 of 1)
interfaces/mwrank.py: 0% (0 of 8)
interfaces/tachyon.py: 0% (0 of 4)
interfaces/quit.py: 0% (0 of 3)
interfaces/psage.py: 0% (0 of 13)
interfaces/magma_sim.py: 0% (0 of 1)
libs/linbox/linbox.pyx: 0% (0 of 10)
libs/pari/functional.py: 0% (0 of 191)
libs/pari/gen_py.py: 0% (0 of 2)
libs/pari/bg.py: 0% (0 of 1)
libs/libecm.pyx: 0% (0 of 1)
matrix/benchmark.py: 0% (0 of 29)
matrix/solve.pyx: 0% (0 of 2)
matrix/docs.py: 0% (0 of 3)
matrix/matrix_misc.py: 0% (0 of 1)
matrix/matrix_window.pyx: 0% (0 of 8)
matrix/matrix_integer_sparse.pyx: 0% (0 of 7)
matrix/matrix_integer_2x2.pyx: 0% (0 of 13)
media/channels.pyx: 0% (0 of 1)
media/wav.py: 0% (0 of 25)
misc/mathml.py: 0% (0 of 7)
misc/pager.py: 0% (0 of 2)
misc/sh.py: 0% (0 of 3)
misc/benchmark.py: 0% (0 of 9)
misc/darcs.py: 0% (0 of 23)
misc/multireplace.py: 0% (0 of 1)
misc/typecheck.py: 0% (0 of 7)
misc/cache.py: 0% (0 of 6)
misc/all.py: 0% (0 of 3)
misc/func_persist.py: 0% (0 of 3)
misc/defaults.py: 0% (0 of 3)
misc/cython_c.pyx: 0% (0 of 1)
misc/viewer.py: 0% (0 of 6)
misc/log.py: 0% (0 of 42)
misc/copying.py: 0% (0 of 3)
misc/db.py: 0% (0 of 5)
misc/search.pyx: 0% (0 of 1)
misc/attach.py: 0% (0 of 2)
misc/preparser_ipython.py: 0% (0 of 4)
misc/getusage.py: 0% (0 of 4)
misc/dist.py: 0% (0 of 1)
misc/persist.py: 0% (0 of 4)
misc/profiler.py: 0% (0 of 5)
misc/file_to_worksheet.py: 0% (0 of 1)
modular/hecke/element.py: 0% (0 of 11)
modular/hecke/homspace.py: 0% (0 of 3)
modular/hecke/morphism.py: 0% (0 of 6)
modular/modsym/g1list.py: 0% (0 of 6)
modular/modsym/element.py: 0% (0 of 15)
modular/modsym/modular_symbols.py: 0% (0 of 12)
modular/modsym/ghlist.py: 0% (0 of 6)
modular/modsym/heilbronn.pyx: 0% (0 of 14)
modules/free_module_morphism.py: 0% (0 of 3)
monoids/monoid.py: 0% (0 of 2)
plot/tri_plot.py: 0% (0 of 20)
plot/java3d.py: 0% (0 of 1)
plot/texture.py: 0% (0 of 6)
plot/graph.py: 0% (0 of 80)
plot/plot3dsoya.py: 0% (0 of 15)
quadratic_forms/genera/genus.py: 0% (0 of 34)
rings/field_element.py: 0% (0 of 1)
rings/integer_ring_python.py: 0% (0 of 1)
rings/euclidean_domain.py: 0% (0 of 1)
rings/dedekind_domain.py: 0% (0 of 1)
rings/integral_domain.py: 0% (0 of 1)
rings/padics/padic_lazy_ring_generic.py: 0% (0 of 1)
rings/padics/padic_ring_generic.py: 0% (0 of 6)
rings/padics/padic_lazy_field_generic.py: 0% (0 of 1)
rings/padics/padic_ext_element.pyx: 0% (0 of 1)
rings/padics/padic_extension_generic.py: 0% (0 of 20)
rings/padics/padic_lazy_generic.py: 0% (0 of 2)
rings/padics/rigid_functions.pyx: 0% (0 of 37)
rings/padics/padic_ring_base_generic.py: 0% (0 of 3)
rings/padics/padic_extension_leaves.py: 0% (0 of 8)
rings/padics/capped_relative_generic.py: 0% (0 of 1)
rings/padics/padic_ring_fixed_mod.py: 0% (0 of 5)
rings/padics/lazy_generic.py: 0% (0 of 3)
rings/padics/padic_ring_capped_absolute.py: 0% (0 of 5)
rings/padics/unramified_extension_generic.py: 0% (0 of 20)
rings/padics/padic_field_generic.py: 0% (0 of 14)
rings/padics/capped_absolute_generic.py: 0% (0 of 1)
rings/padics/padic_ring_capped_relative.py: 0% (0 of 5)
rings/padics/fixed_mod_generic.py: 0% (0 of 1)
rings/padics/eisenstein_extension_generic.py: 0% (0 of 26)
rings/padics/misc.py: 0% (0 of 2)
rings/padics/valuation.py: 0% (0 of 114)
rings/padics/padic_lazy_element.py: 0% (1 of 110)
rings/padics/padic_base_generic_element.pyx: 0% (0 of 1)
rings/principal_ideal_domain_element.py: 0% (0 of 1)
rings/bernoulli.py: 0% (0 of 2)
rings/dedekind_domain_element.py: 0% (0 of 1)
rings/big_oh.py: 0% (0 of 1)
rings/coerce_python.py: 0% (0 of 5)
rings/memory.pyx: 0% (0 of 1)
rings/commutative_ring.py: 0% (0 of 1)
rings/number_field/maps.py: 0% (0 of 50)
rings/sparse_poly.pyx: 0% (0 of 41)
rings/field.py: 0% (0 of 1)
rings/ideal_monoid.py: 0% (0 of 6)
rings/real_interval_field.py: 0% (0 of 4)
rings/integral_domain_element.py: 0% (0 of 1)
rings/polynomial/polynomial_fateman.py: 0% (0 of 3)
rings/polynomial/polynomial_compiled.pyx: 0% (0 of 19)
rings/commutative_ring_element.py: 0% (0 of 1)
rings/commutative_algebra.py: 0% (0 of 1)
rings/euclidean_domain_element.py: 0% (0 of 1)
rings/principal_ideal_domain.py: 0% (0 of 1)
schemes/plane_quartics/quartic_constructor.py: 0% (0 of 1)
schemes/plane_quartics/quartic_generic.py: 0% (0 of 3)
schemes/hyperelliptic_curves/constructor.py: 0% (0 of 1)
schemes/hyperelliptic_curves/hyperelliptic_rational_field.py: 0% (0 of 2)
schemes/hyperelliptic_curves/jacobian_g2.py: 0% (0 of 1)
schemes/hyperelliptic_curves/jacobian_generic.py: 0% (0 of 5)
schemes/hyperelliptic_curves/kummer_surface.py: 0% (0 of 1)
schemes/hyperelliptic_curves/hyperelliptic_g2_generic.py: 0% (0 of 4)
schemes/hyperelliptic_curves/jacobian_constructor.py: 0% (0 of 1)
schemes/jacobians/abstract_jacobian.py: 0% (0 of 6)
schemes/generic/point.py: 0% (0 of 15)
schemes/generic/glue.py: 0% (0 of 3)
schemes/generic/divisor_group.py: 0% (0 of 8)
schemes/generic/hypersurface.py: 0% (0 of 7)
schemes/generic/ambient_space.py: 0% (0 of 16)
schemes/elliptic_curves/sea.py: 0% (0 of 1)
schemes/elliptic_curves/rational_torsion.py: 0% (0 of 3)
schemes/elliptic_curves/kodaira_symbol.py: 0% (0 of 5)
schemes/elliptic_curves/magma_3descent.py: 0% (0 of 2)
schemes/elliptic_curves/mod5family.py: 0% (0 of 1)
schemes/elliptic_curves/padic_height.py: 0% (0 of 6)
schemes/elliptic_curves/ell_padic.py: 0% (0 of 3)
server/notebook/applet.py: 0% (0 of 2)
server/notebook/colorize.py: 0% (0 of 4)
server/notebook/js.py: 0% (0 of 10)
server/notebook/tutorial.py: 0% (0 of 1)
server/notebook/wiki2html.py: 0% (0 of 60)
server/notebook/keyboards.py: 0% (0 of 10)
server/notebook/avatars.py: 0% (0 of 12)
server/notebook/register.py: 0% (0 of 3)
server/notebook/smtpsend.py: 0% (0 of 5)
server/notebook/user_db.py: 0% (0 of 3)
server/notebook/worksheet_conf.py: 0% (0 of 1)
server/notebook/compress/SourceMap.py: 0% (0 of 4)
server/notebook/compress/BaseConvert.py: 0% (0 of 3)
server/notebook/compress/JavaScriptCompressor.py: 0% (0 of 15)
server/notebook/gnutls_socket_ssl.py: 0% (0 of 5)
server/notebook/run_notebook.py: 0% (0 of 6)
server/notebook/jquery.py: 0% (0 of 4)
server/notebook/mailsender.py: 0% (0 of 10)
server/notebook/template.py: 0% (0 of 5)
server/notebook/server_conf.py: 0% (0 of 1)
server/notebook/user_conf.py: 0% (0 of 1)
server/notebook/conf.py: 0% (0 of 6)
server/notebook/guard.py: 0% (0 of 31)
server/trac/trac.py: 0% (0 of 2)
server/introspect.py: 0% (0 of 4)
server/wiki/moin.py: 0% (0 of 4)
sets/primes.py: 0% (0 of 7)
structure/element_py.py: 0% (0 of 1)
structure/element_verify.py: 0% (0 of 10)
structure/nonexact.py: 0% (0 of 3)
structure/wrapper_parent.pyx: 0% (0 of 13)
structure/gens_py.py: 0% (0 of 2)
tests/benchmark.py: 0% (0 of 135)

doc3 (last edited 2008-11-14 13:41:56 by anonymous)