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 17710-c8a39c8) Lines: 1986 2181 91.1 %
Date: 2015-03-31 Functions: 197 206 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1505 1914 78.6 %

Function Name Sort by function name Hit count Sort by hit count
Itos 5922
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 31185
RgX_degree 21294
RgX_integ 98
_egal 6170827
_egal_i 6170827
_gtopoly 2380154
_polcoeff 128079
_quot 546
_quotfi 7
_quotfs 14
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 896
ceil_safe 54827
ceilr 1661
centerlift 12243
centerlift0 98
centerliftii 9982
checkdeflate 31269
coefstoser 7
compo 312
deg1pol 1071
deg1pol_shallow 345662
degree 0
denom 9165163
deriv 79534
derivser 882
diffop 3535
diffop0 42
diviiround 9062084
divrem 896
err_intformal 35
floor_safe 7753
gceil 10540
gcvtoi 73664
gdeflate 182
gdivent 5497226
gdiventgs 1359
gdiventres 903
gdiventsg 5495503
gdivmod 0
gdivround 491792
gdvd 3871
geq 620044
geval 0
geval_gp 9814
gfloor 2722787
gfrac 91
gge 124152
ggrando 3815
ggt 122584
gimag 175
gle 7719712
glt 6210893
gmod 6031424
gmodgs 13780
gmodsg 5779110
gmodulo 814016
gmodulsg 692376
gmodulss 598195
gne 5550783
gnot 259231
gppoldegree 3717
gprecision 2313707
greal 158720
grndtoi 7921286
ground 903134
gshift 6311418
gsubst 63476
gsubst_expr 35
gsubstpol 56
gsubstvec 238
gtocol 182
gtocol0 1197
gtocolrev 0
gtocolrev0 252
gtopoly 59045
gtopolyrev 2321109
gtoser 350
gtovec 213829
gtovec0 214998
gtovecpost 1029
gtovecpre 336
gtovecrev 7
gtovecrev0 259
gtovecsmall 2660
gtovecsmall0 791
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 770
gtrunc2n 8616330
gvar 96404994
gvar2 19901309
gvar9 36778
hqfeval 0
imag_i 292246
init_qf_apply 143535
init_vectopre 245
integ 350
integ_act 14
integser 1400
inv_ser 294
iscomplex 21
isinexact 128073769
isinexactreal 11697
isint 3052
isrationalzeroscalar 0
isrealappr 72685
issmall 2849
lift 108977
lift0 175166
lift_intern 204123
liftall 56
liftall_shallow 119
liftint 112
liftint_shallow 511
liftpol 49
liftpol_shallow 133791
listdeflate 21
lookup 833
mkcoln 0
mkintn 13419
mkpoln 1292286
mkvecn 4774
mkvecsmalln 91
mod_r 168
modr_safe 423852
modrs 14
modsf 35
modsr 35
mulreal 10658655
multi_coeff 39375
numer 8232293
op_ReIm 358449
padic_to_Q 686
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 770
polcoeff0 4970
polcoeff_i 169022
poldeflate 112
poldegree 7075
poleval 722546
pollead 2914
poltoser 441
prec0 8431
precCOMPLEX 1396015
precREAL 856745
precision 583498
precision0 1379
precrealexact 109522
qf_apply_RgM 448
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 2671559
recvar 329
rfractoser 49
round0 1925
round_i 15171153
roundr 914256
roundr_safe 9636411
scalarpol 4997293
scalarpol_shallow 12161
scalarser 3248
ser2pol_i 234887
ser2rfrac 252
ser2rfrac_i 1827
ser_unscale 588
serdeflate 14
serreverse 49
simplify 10782056
simplify_shallow 258950869
swapvar_act 21
tayl 7
tayl_act 7
toser_i 571179
triv_integ 35
trunc0 217
uu32toi 104853
var2_aux 8155
var2_polmod 1120
var2_rfrac 7035
variables_vec 14
variables_vecsmall 7
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 224
vecdenom 182

Generated by: LCOV version 1.9