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 16624-25b9976) Lines: 1675 1761 95.1 %
Date: 2014-06-24 Functions: 138 144 95.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1012 1224 82.7 %

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 17688
RgV_find_denom 0
ZM_Q_mul 29131
ZM_famat_limit 43224
_idealmulred 30149
_idealsqrred 44307
_mul 19329
_sqr 44307
addmul_col 31671
addmul_mat 18066
append 76262
check_listpr 500
chk_vdir 20
colcomb 28234
colcomb1 34513
coprime_part 2691
element_close 8835
element_mulvecrow 122
elt_cmp 17117
elt_egal 4359
ext_inv 3130
ext_mul 113430
ext_pow 167
ext_sqr 44287
extideal_HNF_mul 12667
factor_norm 15804
factorbackprime 2677
famat_add 92440
famat_inv 3230
famat_inv_shallow 5
famat_makecoprime 88724
famat_mul 128759
famat_mul_shallow 2322
famat_pow 1738
famat_reduce 4441
famat_sqr 37477
famat_to_Fp_simple 270
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 8708
famatsmall_reduce 6302
get_random_a 163111
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 16117
idealaddmultoone 30
idealaddtoone 1753
idealaddtoone0 50
idealaddtoone_i 164486
idealappr 510
idealappr0 10
idealapprfact 500
idealapprfact_i 10848
idealchinese 20
idealcoprime 60
idealcoprimefact 3590
idealdiv 10100
idealdiv0 25
idealdivexact 1139
idealdivpowprime 1447
idealfactor 16894
idealfactor_HNF 15804
idealhnf 1083
idealhnf0 90
idealhnf_principal 102867
idealhnf_shallow 242192
idealhnf_two 1054478
idealintersect 20
idealinv 28968
idealinv_HNF 20167
idealinv_HNF_aux 20602
idealmin 5
idealmul 414581
idealmul0 15
idealmul_HNF 274313
idealmul_HNF_two 548316
idealmul_aux 458888
idealmulelt 116064
idealmulpowprime 25030
idealmulred 10820
idealnorm 5174
idealnumden 15824
idealpow 267862
idealpow0 30
idealpow_aux 267862
idealpowprime 179651
idealpowred 35924
idealpows 8485
idealprodprime 0
idealred0 101429
idealsqr 44307
idealtwoelt 8699
idealtwoelt0 45
idealtwoelt2 35
idealtyp 2125604
idealval 262127
init_unif_mod_fZ 13866
isideal 65
make_integral 2822
mat_ideal_two_elt 283213
mat_ideal_two_elt2 20
merge_fact 15
nf_coprime_part 80
nf_get_Gtwist 20
nf_get_Gtwist1 16003
nf_to_Fp_simple 1030
nf_to_Fq_simple 0
nfbezout 16087
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 190619
pidealprimeinv 892
rowcomb 80
to_Fp_simple 845
to_Fq_simple 0
to_famat 503
to_famat_shallow 46050
trivial_merge 20
twistG 16048
ucoprime_part 330020
unif_mod_fZ 20719
unnf_minus_x 157690
val_norm 275397
vec_mulid 5
vecdiv 645
vecinv 2430
vecmul 165715
vecpow 11105
zero_nfbezout 14414

Generated by: LCOV version 1.9