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 16375-9f41ae0) Lines: 1673 1759 95.1 %
Date: 2014-04-19 Functions: 138 144 95.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1012 1224 82.7 %

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 25347
RgV_find_denom 0
ZM_Q_mul 40911
ZM_famat_limit 299482
_idealmulred 42228
_idealsqrred 62623
_mul 27750
_sqr 62623
addmul_col 45541
addmul_mat 25939
append 109616
check_listpr 700
chk_vdir 28
colcomb 39526
colcomb1 48317
coprime_part 3737
element_close 12369
element_mulvecrow 170
elt_cmp 24214
elt_egal 6110
ext_inv 4340
ext_mul 161473
ext_pow 233
ext_sqr 62595
extideal_HNF_mul 18781
factor_norm 22111
factorbackprime 3742
famat_add 133219
famat_inv 4480
famat_inv_shallow 7
famat_makecoprime 125434
famat_mul 186374
famat_mul_shallow 3241
famat_pow 2464
famat_reduce 6200
famat_sqr 54825
famat_to_Fp_simple 378
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 12142
famatsmall_reduce 8824
get_random_a 230951
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 22563
idealaddmultoone 42
idealaddtoone 2446
idealaddtoone0 70
idealaddtoone_i 231840
idealappr 714
idealappr0 14
idealapprfact 700
idealapprfact_i 15196
idealchinese 28
idealcoprime 84
idealcoprimefact 5026
idealdiv 14134
idealdiv0 35
idealdivexact 1595
idealdivpowprime 2007
idealfactor 23637
idealfactor_HNF 22111
idealhnf 1490
idealhnf0 126
idealhnf_principal 144720
idealhnf_shallow 341318
idealhnf_two 1433742
idealintersect 28
idealinv 40515
idealinv_HNF 28187
idealinv_HNF_aux 28796
idealmin 7
idealmul 581514
idealmul0 21
idealmul_HNF 386093
idealmul_HNF_two 771875
idealmul_aux 644137
idealmulelt 163846
idealmulpowprime 35002
idealmulred 14478
idealnorm 7192
idealnumden 22139
idealpow 377762
idealpow0 42
idealpow_aux 377762
idealpowprime 252495
idealpowred 50321
idealpows 11822
idealprodprime 0
idealred0 142816
idealsqr 62623
idealtwoelt 11804
idealtwoelt0 63
idealtwoelt2 49
idealtyp 2990161
idealval 369945
init_unif_mod_fZ 19415
isideal 91
make_integral 3921
mat_ideal_two_elt 400696
mat_ideal_two_elt2 28
merge_fact 21
nf_coprime_part 112
nf_get_Gtwist 28
nf_get_Gtwist1 23121
nf_to_Fp_simple 1442
nf_to_Fq_simple 0
nfbezout 22521
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 269857
pidealprimeinv 1246
rowcomb 112
to_Fp_simple 1183
to_Fq_simple 0
to_famat 725
to_famat_shallow 57150
trivial_merge 28
twistG 23184
ucoprime_part 133
unif_mod_fZ 30261
unnf_minus_x 222279
val_norm 388525
vec_mulid 7
vecdiv 903
vecinv 3402
vecmul 233307
vecpow 16327
zero_nfbezout 20187

Generated by: LCOV version 1.9