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 - gen3.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17404-c89e0b8) Lines: 1969 2170 90.7 %
Date: 2015-01-30 Functions: 194 205 94.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1484 1900 78.1 %

Function Name Sort by function name Hit count Sort by hit count
Itos 5789
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 29639
RgX_degree 20013
RgX_integ 98
_egal 6166463
_gtopoly 2380644
_polcoeff 126455
_quot 546
_quotfi 7
_quotfs 14
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 896
ceil_safe 53665
ceilr 1605
centerlift 9135
centerlift0 392
centerliftii 7595
checkdeflate 29723
coefstoser 7
compo 310
deg1pol 966
deg1pol_shallow 342107
degree 0
denom 9164449
deriv 77707
derivser 847
diffop 3535
diffop0 42
diviiround 9079586
divrem 896
err_intformal 35
floor_safe 7753
gceil 9539
gcvtoi 72502
gdeflate 182
gdivent 5497226
gdiventgs 1121
gdiventres 903
gdiventsg 5495503
gdivmod 0
gdivround 492072
gdvd 3927
geq 616380
geval 0
geval_gp 9814
gfloor 2577884
gfrac 91
gge 124152
ggrando 3654
ggt 136031
gimag 175
gle 7719635
glt 5933227
gmod 6029660
gmodgs 13780
gmodsg 5779082
gmodulo 789180
gmodulsg 685781
gmodulss 597167
gne 5550083
gnot 259215
gppoldegree 2373
gprecision 2310043
greal 157908
grndtoi 7919110
ground 900810
gshift 6024713
gsubst 72051
gsubst_expr 35
gsubstpol 56
gsubstvec 238
gtocol 182
gtocol0 1197
gtocolrev 0
gtocolrev0 252
gtopoly 59535
gtopolyrev 2321109
gtoser 350
gtovec 213787
gtovec0 214984
gtovecpost 1029
gtovecpre 336
gtovecrev 0
gtovecrev0 252
gtovecsmall 2569
gtovecsmall0 756
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 742
gtrunc2n 8590380
gvar 96002308
gvar2 19899517
gvar9 30156
hqfeval 0
imag_i 368541
init_qf_apply 143528
init_vectopre 245
integ 350
integ_act 14
integser 1386
inv_ser 294
iscomplex 21
isinexact 127991233
isinexactreal 11697
isint 3052
isrationalzeroscalar 0
isrealappr 71959
issmall 2849
lift 102089
lift0 167723
lift_intern 179077
liftall 56
liftall_shallow 119
liftint 63
liftint_shallow 133
liftpol 49
liftpol_shallow 130151
listdeflate 21
lookup 833
mkcoln 0
mkintn 13419
mkpoln 1187836
mkvecn 4753
mkvecsmalln 0
mod_r 168
modr_safe 423847
modrs 14
modsf 35
modsr 35
mulreal 10658655
multi_coeff 38731
numer 8231474
op_ReIm 357314
padic_to_Q 665
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 770
polcoeff0 4914
polcoeff_i 166516
poldeflate 112
poldegree 5605
poleval 711255
pollead 2634
poltoser 441
prec0 1662
precCOMPLEX 1428299
precREAL 836299
precision 588176
precision0 1379
precrealexact 150500
qf_apply_RgM 441
qf_apply_ZM 143087
qfbil 42
qfeval 21
qfevalb 21
qfnorm 56
quot 497
quotfi 7
quotfs 14
quotrem 259
quotri 14
quotrs 28
quotsf 35
quotsr 70
real_i 2703005
recvar 329
rfractoser 49
round0 1925
round_i 15166741
roundr 913648
roundr_safe 9633434
scalarpol 4834594
scalarpol_shallow 12063
scalarser 3178
ser2pol_i 234866
ser2rfrac 231
ser2rfrac_i 1806
ser_unscale 588
serdeflate 14
serreverse 49
simplify 10781287
simplify_shallow 256190807
swapvar_act 21
tayl 7
tayl_act 7
toser_i 608167
triv_integ 35
trunc0 217
uu32toi 104851
var2_aux 7427
var2_polmod 385
var2_rfrac 7042
variables_vec 14
variables_vecsmall 7
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 224
vecdenom 182

Generated by: LCOV version 1.9