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 16791-0d1274a) Lines: 1674 1767 94.7 %
Date: 2014-09-16 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 17797
RgV_find_denom 0
ZM_Q_mul 30963
ZM_famat_limit 40228
_idealmulred 29860
_idealsqrred 43720
_mul 19070
_sqr 43720
addmul_col 24260
addmul_mat 12935
append 69075
check_listpr 545
chk_vdir 20
colcomb 28230
colcomb1 34510
coprime_part 2705
element_close 8835
element_mulvecrow 120
elt_cmp 10900
elt_egal 3170
err_divexact 5
ext_inv 3090
ext_mul 112183
ext_pow 150
ext_sqr 43700
extideal_HNF_mul 12560
factor_norm 15360
factorbackprime 2850
famat_add 85058
famat_inv 3180
famat_inv_shallow 5
famat_makecoprime 69932
famat_mul 120848
famat_mul_shallow 2355
famat_pow 1585
famat_reduce 4505
famat_sqr 36890
famat_to_Fp_simple 270
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 8910
famatsmall_reduce 6265
get_random_a 113175
gpidealval 30
hnf_QC_QC 5
hnf_Q_Q 15
hnf_Q_QC 25
hnf_Z_QC 20
hnf_Z_ZC 25
idV_simplify 1475
idealadd 16115
idealaddmultoone 30
idealaddtoone 1745
idealaddtoone0 50
idealaddtoone_i 128599
idealappr 555
idealappr0 10
idealapprfact 545
idealapprfact_i 10375
idealchinese 20
idealcoprime 60
idealcoprimefact 3630
idealdiv 10125
idealdiv0 25
idealdivexact 1230
idealdivpowprime 1510
idealfactor 16450
idealfactor_HNF 15360
idealhnf 1045
idealhnf0 90
idealhnf_principal 86495
idealhnf_shallow 190034
idealhnf_two 879975
idealintersect 20
idealinv 28960
idealinv_HNF 20150
idealinv_HNF_aux 20610
idealmin 5
idealmul 347386
idealmul0 15
idealmul_HNF 237637
idealmul_HNF_two 464217
idealmul_aux 391106
idealmulelt 95186
idealmulpowprime 24745
idealmulred 10790
idealnorm 5370
idealnumden 15380
idealpow 226399
idealpow0 30
idealpow_aux 226399
idealpowprime 160869
idealpowred 35795
idealpows 8575
idealprodprime 0
idealred0 100389
idealsqr 43720
idealtwoelt 8349
idealtwoelt0 45
idealtwoelt2 35
idealtyp 1806501
idealval 230078
init_unif_mod_fZ 13430
isideal 65
make_integral 2845
mat_ideal_two_elt 236610
mat_ideal_two_elt2 20
merge_fact 15
nf_coprime_part 80
nf_get_Gtwist 20
nf_get_Gtwist1 16117
nf_to_Fp_simple 1030
nf_to_Fq_simple 0
nfbezout 16085
nfcleanmod 4210
nfdetint 15
nfdivmodpr 420
nfhnf 1220
nfhnfmod 290
nfkermodpr 10
nfmulmodpr 425
nfpowmodpr 120
nfreduce 10
nfsnf 15
nfsolvemodpr 15
not_in_ideal 10
ok_elt 136644
pidealprimeinv 890
rowcomb 80
to_Fp_simple 845
to_Fq_simple 0
to_famat 475
to_famat_shallow 39610
trivial_merge 20
twistG 16162
ucoprime_part 330020
unif_mod_fZ 19120
unnf_minus_x 121679
val_norm 242753
vec_mulid 5
vecdiv 645
vecinv 0
vecmul 123990
vecpow 9730
zero_nfbezout 14420

Generated by: LCOV version 1.9