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 16962-5a32637) Lines: 1674 1767 94.7 %
Date: 2014-10-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 24758
RgV_find_denom 0
ZM_Q_mul 42859
ZM_famat_limit 56182
_idealmulred 41769
_idealsqrred 61173
_mul 26677
_sqr 61173
addmul_col 33432
addmul_mat 17899
append 96615
check_listpr 756
chk_vdir 21
colcomb 38906
colcomb1 47586
coprime_part 3773
element_close 12187
element_mulvecrow 105
elt_cmp 15260
elt_egal 4438
err_divexact 7
ext_inv 4235
ext_mul 156959
ext_pow 210
ext_sqr 61159
extideal_HNF_mul 17584
factor_norm 21322
factorbackprime 3962
famat_add 118957
famat_inv 4361
famat_inv_shallow 7
famat_makecoprime 97776
famat_mul 169056
famat_mul_shallow 2576
famat_pow 2219
famat_reduce 6272
famat_sqr 51625
famat_to_Fp_simple 364
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 11683
famatsmall_reduce 8841
get_random_a 157920
gpidealval 42
hnf_QC_QC 7
hnf_Q_Q 21
hnf_Q_QC 28
hnf_Z_QC 21
hnf_Z_ZC 28
idV_simplify 2009
idealadd 22120
idealaddmultoone 35
idealaddtoone 2352
idealaddtoone0 70
idealaddtoone_i 178483
idealappr 770
idealappr0 14
idealapprfact 756
idealapprfact_i 14441
idealchinese 28
idealcoprime 63
idealcoprimefact 5026
idealdiv 14056
idealdiv0 35
idealdivexact 1715
idealdivpowprime 2072
idealfactor 22617
idealfactor_HNF 21322
idealhnf 1442
idealhnf0 119
idealhnf_principal 120184
idealhnf_shallow 264164
idealhnf_two 1225596
idealintersect 21
idealinv 39802
idealinv_HNF 27755
idealinv_HNF_aux 28392
idealmin 7
idealmul 483389
idealmul0 21
idealmul_HNF 329942
idealmul_HNF_two 646286
idealmul_aux 544562
idealmulelt 132451
idealmulpowprime 34426
idealmulred 15092
idealnorm 7385
idealnumden 21350
idealpow 315183
idealpow0 42
idealpow_aux 315183
idealpowprime 223758
idealpowred 50001
idealpows 11935
idealprodprime 0
idealred0 140300
idealsqr 61173
idealtwoelt 11500
idealtwoelt0 63
idealtwoelt2 42
idealtyp 2514741
idealval 321530
init_unif_mod_fZ 18683
isideal 84
make_integral 3983
mat_ideal_two_elt 328955
mat_ideal_two_elt2 21
merge_fact 21
nf_coprime_part 112
nf_get_Gtwist 21
nf_get_Gtwist1 22553
nf_to_Fp_simple 1414
nf_to_Fq_simple 0
nfbezout 22099
nfcleanmod 5698
nfdetint 14
nfdivmodpr 588
nfhnf 1673
nfhnfmod 385
nfkermodpr 14
nfmulmodpr 595
nfpowmodpr 168
nfreduce 7
nfsnf 14
nfsolvemodpr 21
not_in_ideal 14
ok_elt 190448
pidealprimeinv 1197
rowcomb 70
to_Fp_simple 1155
to_Fq_simple 0
to_famat 665
to_famat_shallow 58199
trivial_merge 28
twistG 22595
ucoprime_part 462328
unif_mod_fZ 26705
unnf_minus_x 168809
val_norm 339058
vec_mulid 7
vecdiv 903
vecinv 0
vecmul 173306
vecpow 13622
zero_nfbezout 19838

Generated by: LCOV version 1.9