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 16741-1378b1c) Lines: 1674 1767 94.7 %
Date: 2014-08-17 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 17558
RgV_find_denom 0
ZM_Q_mul 29200
ZM_famat_limit 43569
_idealmulred 29760
_idealsqrred 43500
_mul 18970
_sqr 43500
addmul_col 32503
addmul_mat 18483
append 76944
check_listpr 500
chk_vdir 20
colcomb 28230
colcomb1 34510
coprime_part 2680
element_close 8835
element_mulvecrow 120
elt_cmp 10830
elt_egal 3171
err_divexact 5
ext_inv 3065
ext_mul 111592
ext_pow 150
ext_sqr 43480
extideal_HNF_mul 12458
factor_norm 15185
factorbackprime 2680
famat_add 92795
famat_inv 3155
famat_inv_shallow 5
famat_makecoprime 88708
famat_mul 128359
famat_mul_shallow 2310
famat_pow 1585
famat_reduce 4425
famat_sqr 36670
famat_to_Fp_simple 270
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 8715
famatsmall_reduce 6265
get_random_a 162417
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 164515
idealappr 510
idealappr0 10
idealapprfact 500
idealapprfact_i 10240
idealchinese 20
idealcoprime 60
idealcoprimefact 3585
idealdiv 10095
idealdiv0 25
idealdivexact 1140
idealdivpowprime 1450
idealfactor 16270
idealfactor_HNF 15185
idealhnf 1045
idealhnf0 90
idealhnf_principal 102783
idealhnf_shallow 242173
idealhnf_two 1008238
idealintersect 20
idealinv 28900
idealinv_HNF 20095
idealinv_HNF_aux 20530
idealmin 5
idealmul 367274
idealmul0 15
idealmul_HNF 272364
idealmul_HNF_two 498493
idealmul_aux 410774
idealmulelt 116028
idealmulpowprime 24430
idealmulred 10790
idealnorm 5140
idealnumden 15205
idealpow 268673
idealpow0 30
idealpow_aux 268673
idealpowprime 179895
idealpowred 35648
idealpows 8570
idealprodprime 0
idealred0 99963
idealsqr 43500
idealtwoelt 8344
idealtwoelt0 45
idealtwoelt2 35
idealtyp 2022430
idealval 256726
init_unif_mod_fZ 13255
isideal 65
make_integral 2815
mat_ideal_two_elt 281901
mat_ideal_two_elt2 20
merge_fact 15
nf_coprime_part 80
nf_get_Gtwist 20
nf_get_Gtwist1 15883
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 189217
pidealprimeinv 885
rowcomb 80
to_Fp_simple 845
to_Fq_simple 0
to_famat 475
to_famat_shallow 47713
trivial_merge 20
twistG 15928
ucoprime_part 330020
unif_mod_fZ 18820
unnf_minus_x 157620
val_norm 269201
vec_mulid 5
vecdiv 645
vecinv 0
vecmul 123990
vecpow 9730
zero_nfbezout 14420

Generated by: LCOV version 1.9