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 16912-212c0f0) Lines: 1674 1767 94.7 %
Date: 2014-10-20 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 24600
RgV_find_denom 0
ZM_Q_mul 41734
ZM_famat_limit 54719
_idealmulred 41655
_idealsqrred 60939
_mul 26563
_sqr 60939
addmul_col 33486
addmul_mat 17923
append 94461
check_listpr 763
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 156376
ext_pow 210
ext_sqr 60925
extideal_HNF_mul 17484
factor_norm 21343
factorbackprime 3976
famat_add 116703
famat_inv 4361
famat_inv_shallow 7
famat_makecoprime 98280
famat_mul 166588
famat_mul_shallow 2583
famat_pow 2219
famat_reduce 6272
famat_sqr 51391
famat_to_Fp_simple 364
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 11697
famatsmall_reduce 8771
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 178690
idealappr 777
idealappr0 14
idealapprfact 763
idealapprfact_i 14455
idealchinese 28
idealcoprime 63
idealcoprimefact 5026
idealdiv 14056
idealdiv0 35
idealdivexact 1729
idealdivpowprime 2086
idealfactor 22638
idealfactor_HNF 21343
idealhnf 1442
idealhnf0 119
idealhnf_principal 118179
idealhnf_shallow 262373
idealhnf_two 1221714
idealintersect 21
idealinv 39802
idealinv_HNF 27755
idealinv_HNF_aux 28399
idealmin 7
idealmul 481467
idealmul0 21
idealmul_HNF 329362
idealmul_HNF_two 645598
idealmul_aux 542406
idealmulelt 131209
idealmulpowprime 34517
idealmulred 15092
idealnorm 7420
idealnumden 21371
idealpow 313784
idealpow0 42
idealpow_aux 313784
idealpowprime 225728
idealpowred 49901
idealpows 11935
idealprodprime 0
idealred0 139908
idealsqr 60939
idealtwoelt 11500
idealtwoelt0 63
idealtwoelt2 42
idealtyp 2503011
idealval 318369
init_unif_mod_fZ 18697
isideal 84
make_integral 3983
mat_ideal_two_elt 327753
mat_ideal_two_elt2 21
merge_fact 21
nf_coprime_part 112
nf_get_Gtwist 21
nf_get_Gtwist1 22395
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 190460
pidealprimeinv 1197
rowcomb 70
to_Fp_simple 1155
to_Fq_simple 0
to_famat 665
to_famat_shallow 54025
trivial_merge 28
twistG 22437
ucoprime_part 461799
unif_mod_fZ 26782
unnf_minus_x 169016
val_norm 335967
vec_mulid 7
vecdiv 903
vecinv 0
vecmul 173306
vecpow 13622
zero_nfbezout 19838

Generated by: LCOV version 1.9