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 17097-9391e68) Lines: 1703 1803 94.5 %
Date: 2014-11-21 Functions: 139 147 94.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1031 1256 82.1 %

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 17857
RgV_find_denom 0
ZM_Q_mul 30868
ZM_famat_limit 40168
_idealmulred 30295
_idealsqrred 44050
_mul 18920
_sqr 44050
addmul_col 25170
addmul_mat 13465
append 68645
check_listpr 540
chk_vdir 15
colcomb 27970
colcomb1 34200
coprime_part 2710
element_close 8720
element_mulvecrow 165
elt_cmp 10960
elt_egal 3175
err_divexact 5
ext_inv 3075
ext_mul 112573
ext_pow 160
ext_sqr 44040
extideal_HNF_mul 12405
factor_norm 15290
factorbackprime 2845
famat_add 84583
famat_inv 3165
famat_inv_shallow 5
famat_makecoprime 69977
famat_mul 119973
famat_mul_shallow 1840
famat_pow 1600
famat_reduce 4545
famat_sqr 36635
famat_to_Fp_simple 260
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 8435
famatsmall_reduce 6315
get_random_a 113695
gpidealval 30
hnf_QC_QC 5
hnf_Q_Q 15
hnf_Q_QC 20
hnf_Z_QC 15
hnf_Z_ZC 20
idV_simplify 1440
idealadd 15860
idealaddmultoone 25
idealaddtoone 1705
idealaddtoone0 50
idealaddtoone_i 128134
idealappr 550
idealappr0 10
idealapprfact 540
idealapprfact_i 10400
idealchinese 20
idealcoprime 45
idealcoprimefact 3625
idealdiv 10255
idealdiv0 25
idealdivexact 1225
idealdivpowprime 1525
idealfactor 16245
idealfactor_HNF 15290
idealhnf 1035
idealhnf0 85
idealhnf_principal 86430
idealhnf_shallow 189624
idealhnf_two 884320
idealintersect 15
idealinv 28885
idealinv_HNF 20255
idealinv_HNF_aux 20710
idealmin 5
idealmul 346656
idealmul0 20
idealmul_HNF 236852
idealmul_HNF_two 463077
idealmul_aux 390706
idealmulelt 95146
idealmulpowprime 24650
idealmulred 11375
idealnorm 5700
idealnumden 15310
idealpow 226149
idealpow0 30
idealpow_aux 226149
idealpowprime 160789
idealpowred 36550
idealpows 9080
idealprodprime 0
idealred0 101374
idealsqr 44050
idealtwoelt 8009
idealtwoelt0 45
idealtwoelt2 30
idealtyp 1805571
idealval 231363
init_unif_mod_fZ 13470
isideal 60
make_integral 2860
mat_ideal_two_elt 235950
mat_ideal_two_elt2 15
merge_fact 15
nf_coprime_part 80
nf_get_Gtwist 15
nf_get_Gtwist1 16077
nf_to_Fp_simple 1580
nf_to_Fq_simple 0
nfbezout 15845
nfcleanmod 4070
nfdetint 10
nfdivmodpr 420
nfhnf 1190
nfhnf0 1200
nfhnfmod 275
nfkermodpr 10
nfmulmodpr 425
nfpowmodpr 120
nfreduce 5
nfsnf 0
nfsnf0 15
nfsolvemodpr 15
not_in_ideal 10
ok_elt 137709
pidealprimeinv 870
rowcomb 110
to_Fp_simple 1410
to_Fq_simple 0
to_famat 475
to_famat_shallow 41665
trivial_merge 20
twistG 16107
ucoprime_part 330235
unif_mod_fZ 19240
unnf_minus_x 121044
val_norm 243973
vec_mulid 5
vecdiv 645
vecinv 0
vecmul 123790
vecpow 9730
zero_nfbezout 14205

Generated by: LCOV version 1.9