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 17242-6994acc) Lines: 1703 1803 94.5 %
Date: 2014-12-22 Functions: 139 147 94.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1032 1256 82.2 %

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 29331
RgV_find_denom 0
ZM_Q_mul 48347
ZM_famat_limit 58471
_idealmulred 44758
_idealsqrred 65724
_mul 28491
_sqr 65724
addmul_col 56273
addmul_mat 25390
append 99320
check_listpr 756
chk_vdir 21
colcomb 47558
colcomb1 57750
coprime_part 4144
element_close 14917
element_mulvecrow 231
elt_cmp 19698
elt_egal 5894
err_divexact 7
ext_inv 4469
ext_mul 165269
ext_pow 266
ext_sqr 65710
extideal_HNF_mul 18856
factor_norm 25748
factorbackprime 5481
famat_add 122793
famat_inv 4609
famat_inv_shallow 7
famat_makecoprime 98567
famat_mul 176688
famat_mul_shallow 2828
famat_pow 2786
famat_reduce 6986
famat_sqr 55203
famat_to_Fp_simple 385
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 12544
famatsmall_reduce 8841
get_random_a 165247
gpidealval 42
hnf_QC_QC 7
hnf_Q_Q 21
hnf_Q_QC 28
hnf_Z_QC 21
hnf_Z_ZC 28
idV_simplify 2744
idealadd 27727
idealaddmultoone 35
idealaddtoone 2702
idealaddtoone0 70
idealaddtoone_i 182508
idealappr 770
idealappr0 14
idealapprfact 756
idealapprfact_i 17362
idealchinese 896
idealcoprime 63
idealcoprimefact 5089
idealdiv 15421
idealdiv0 35
idealdivexact 2016
idealdivpowprime 3388
idealfactor 27533
idealfactor_HNF 25748
idealhnf 2352
idealhnf0 119
idealhnf_principal 137464
idealhnf_shallow 274964
idealhnf_two 1286119
idealintersect 21
idealinv 47400
idealinv_HNF 31729
idealinv_HNF_aux 32373
idealmin 7
idealmul 524914
idealmul0 28
idealmul_HNF 348335
idealmul_HNF_two 687228
idealmul_aux 590638
idealmulelt 138246
idealmulpowprime 36897
idealmulred 16267
idealnorm 9470
idealnumden 25776
idealpow 328018
idealpow0 42
idealpow_aux 328018
idealpowprime 232596
idealpowred 53230
idealpows 13377
idealprodprime 0
idealred0 149592
idealsqr 65724
idealtwoelt 13824
idealtwoelt0 63
idealtwoelt2 42
idealtyp 2692878
idealval 346869
init_unif_mod_fZ 21786
isideal 84
make_integral 4417
mat_ideal_two_elt 343514
mat_ideal_two_elt2 21
merge_fact 21
nf_coprime_part 112
nf_get_Gtwist 21
nf_get_Gtwist1 26195
nf_to_Fp_simple 3514
nf_to_Fq_simple 0
nfbezout 27447
nfcleanmod 7469
nfdetint 14
nfdivmodpr 588
nfhnf 2135
nfhnf0 2149
nfhnfmod 644
nfkermodpr 14
nfmulmodpr 595
nfpowmodpr 168
nfreduce 7
nfsnf 0
nfsnf0 21
nfsolvemodpr 21
not_in_ideal 14
ok_elt 208209
pidealprimeinv 1650
rowcomb 154
to_Fp_simple 3297
to_Fq_simple 0
to_famat 749
to_famat_shallow 58689
trivial_merge 28
twistG 26237
ucoprime_part 462329
unif_mod_fZ 31005
unnf_minus_x 172477
val_norm 367556
vec_mulid 7
vecdiv 903
vecinv 0
vecmul 177352
vecpow 15127
zero_nfbezout 24836

Generated by: LCOV version 1.9