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 16937-4bd9b4e) Lines: 1951 2167 90.0 %
Date: 2014-10-24 Functions: 191 202 94.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1471 1900 77.4 %

Function Name Sort by function name Hit count Sort by hit count
Itos 5348
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 22169
RgX_degree 69
RgX_integ 98
_egal 5348098
_gtopoly 2378864
_polcoeff 1219
_quot 546
_quotfi 7
_quotfs 14
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 882
ceil_safe 50744
ceilr 518
centerlift 9135
centerlift0 392
centerliftii 7595
checkdeflate 22253
coefstoser 7
compo 308
deg1pol 861
deg1pol_shallow 313575
degree 0
denom 9130860
deriv 87213
derivser 833
diffop 3556
diffop0 42
diviiround 8015235
divrem 896
err_intformal 35
floor_safe 3245
gceil 8423
gcvtoi 65073
gdeflate 182
gdivent 5497219
gdiventgs 385
gdiventres 903
gdiventsg 5495497
gdivmod 0
gdivround 232715
gdvd 3801
geq 606340
geval 0
geval_gp 9814
gfloor 2580078
gfrac 20601
gge 124152
ggrando 3640
ggt 136031
gimag 175
gle 7719635
glt 5933227
gmod 5844083
gmodgs 13774
gmodsg 5754002
gmodulo 649523
gmodulsg 634746
gmodulss 596427
gne 4741758
gnot 258598
gppoldegree 1666
gprecision 2122107
greal 158524
grndtoi 7436499
ground 731486
gshift 4252951
gsubst 518196
gsubst_expr 35
gsubstpol 56
gsubstvec 231
gtocol 182
gtocol0 518
gtocolrev 0
gtocolrev0 252
gtopoly 57930
gtopolyrev 2320934
gtoser 350
gtovec 211666
gtovec0 212170
gtovecpost 336
gtovecpre 336
gtovecrev 0
gtovecrev0 252
gtovecsmall 2366
gtovecsmall0 546
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 1456
gtrunc2n 7666124
gvar 94231630
gvar2 19899690
gvar9 28287
hqfeval 0
imag_i 366246
init_qf_apply 143714
init_vectopre 245
integ 350
integ_act 14
integser 1372
inv_ser 294
iscomplex 21
isinexact 129002358
isinexactreal 11697
isint 3052
isrationalzeroscalar 0
isrealappr 62053
issmall 2849
lift 69190
lift0 131728
lift_intern 67714
liftall 49
liftall_shallow 84
liftint 63
liftint_shallow 133
liftpol 63
liftpol_shallow 2373
listdeflate 21
lookup 854
mkcoln 0
mkintn 0
mkpoln 998124
mkvecn 4753
mkvecsmalln 105052
mod_r 168
modr_safe 455302
modrs 14
modsf 35
modsr 35
mulreal 10658935
multi_coeff 67
numer 8200542
op_ReIm 330597
padic_to_Q 665
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 595
polcoeff0 1204
polcoeff_i 1174
poldeflate 112
poldegree 4438
poleval 526731
pollead 1980
poltoser 448
prec0 15776
precCOMPLEX 1424361
precREAL 682289
precision 562710
precision0 1379
precrealexact 150500
qf_apply_RgM 627
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 2540907
rfractoser 49
round0 1925
round_i 12817258
roundr 812410
roundr_safe 7788988
scalarpol 4517704
scalarpol_shallow 11553
scalarser 3122
ser2pol_i 231807
ser2rfrac 945
ser2rfrac_i 1638
ser_unscale 588
serdeflate 14
serreverse 49
simplify 10741572
simplify_shallow 254856665
swapvar_act 21
tayl 7
tayl_act 7
toser_i 598109
triv_integ 35
trunc0 217
uu32toi 70625
var2_aux 7112
var2_polmod 70
var2_rfrac 7042
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 161
vecdenom 182

Generated by: LCOV version 1.9