Code coverage tests

This page documents the degree to which the PARI/GP source code is tested by our public test suite, distributed with the source distribution in directory src/test/. This is measured by the gcov utility; we then process gcov output using the lcov frond-end.

We test a few variants depending on Configure flags on the pari.math.u-bordeaux1.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 90% coverage for all mathematical modules (given that branches depending on DEBUGLEVEL or DEBUGMEM are not covered). This script is run to produce the results below.

LCOV - code coverage report
Current view: top level - basemath - base4.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16827-3d78da8) Lines: 1674 1767 94.7 %
Date: 2014-09-29 Functions: 138 145 95.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1010 1224 82.5 %

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 24905
RgV_find_denom 0
ZM_Q_mul 43349
ZM_famat_limit 56280
_idealmulred 41804
_idealsqrred 61208
_mul 26698
_sqr 61208
addmul_col 33964
addmul_mat 18109
append 96671
check_listpr 763
chk_vdir 28
colcomb 39522
colcomb1 48314
coprime_part 3787
element_close 12369
element_mulvecrow 168
elt_cmp 15260
elt_egal 4438
err_divexact 7
ext_inv 4326
ext_mul 157057
ext_pow 210
ext_sqr 61180
extideal_HNF_mul 17584
factor_norm 21504
factorbackprime 3990
famat_add 119048
famat_inv 4452
famat_inv_shallow 7
famat_makecoprime 97818
famat_mul 169154
famat_mul_shallow 3297
famat_pow 2219
famat_reduce 6307
famat_sqr 51646
famat_to_Fp_simple 378
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 12474
famatsmall_reduce 8771
get_random_a 158445
gpidealval 42
hnf_QC_QC 7
hnf_Q_Q 21
hnf_Q_QC 35
hnf_Z_QC 28
hnf_Z_ZC 35
idV_simplify 2065
idealadd 22561
idealaddmultoone 42
idealaddtoone 2443
idealaddtoone0 70
idealaddtoone_i 179883
idealappr 777
idealappr0 14
idealapprfact 763
idealapprfact_i 14525
idealchinese 28
idealcoprime 84
idealcoprimefact 5082
idealdiv 14175
idealdiv0 35
idealdivexact 1722
idealdivpowprime 2114
idealfactor 23030
idealfactor_HNF 21504
idealhnf 1463
idealhnf0 126
idealhnf_principal 121031
idealhnf_shallow 265830
idealhnf_two 1231371
idealintersect 28
idealinv 40544
idealinv_HNF 28210
idealinv_HNF_aux 28854
idealmin 7
idealmul 486280
idealmul0 21
idealmul_HNF 332497
idealmul_HNF_two 649709
idealmul_aux 547488
idealmulelt 133200
idealmulpowprime 34643
idealmulred 15106
idealnorm 7518
idealnumden 21532
idealpow 316737
idealpow0 42
idealpow_aux 316737
idealpowprime 225095
idealpowred 50113
idealpows 12005
idealprodprime 0
idealred0 140545
idealsqr 61208
idealtwoelt 11689
idealtwoelt0 63
idealtwoelt2 49
idealtyp 2528195
idealval 321978
init_unif_mod_fZ 18802
isideal 91
make_integral 3983
mat_ideal_two_elt 331062
mat_ideal_two_elt2 28
merge_fact 21
nf_coprime_part 112
nf_get_Gtwist 28
nf_get_Gtwist1 22553
nf_to_Fp_simple 1442
nf_to_Fq_simple 0
nfbezout 22519
nfcleanmod 5894
nfdetint 21
nfdivmodpr 588
nfhnf 1708
nfhnfmod 406
nfkermodpr 14
nfmulmodpr 595
nfpowmodpr 168
nfreduce 14
nfsnf 21
nfsolvemodpr 21
not_in_ideal 14
ok_elt 191302
pidealprimeinv 1246
rowcomb 112
to_Fp_simple 1183
to_Fq_simple 0
to_famat 665
to_famat_shallow 55420
trivial_merge 28
twistG 22616
ucoprime_part 462028
unif_mod_fZ 26768
unnf_minus_x 170195
val_norm 339723
vec_mulid 7
vecdiv 903
vecinv 0
vecmul 173586
vecpow 13622
zero_nfbezout 20188

Generated by: LCOV version 1.9