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-bordeaux.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 19044-129ab8a) Lines: 2048 2213 92.5 %
Date: 2016-06-27 Functions: 201 209 96.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1571 1960 80.2 %

Function Name Sort by function name Hit count Sort by hit count
Itos 944737
QpV_to_QV 56
RgM_mulreal 0
RgX_cxeval 277557
RgX_deflate_max 14172
RgX_deflate_order 14284
RgX_degree 22169
RgX_integ 98
ZX_deflate_max 21100
ZX_deflate_order 37571
_egal 22255154
_egal_i 22255154
_gtopoly 2492602
_polcoeff 199206
_quot 602
_quotfi 7
_quotfs 77
_quotri 7
_quotrs 28
_quotsf 35
_quotsr 70
_rfraccoeff 21
_sercoeff 1309
bitprecision0 28
ceil_safe 63332
ceilr 14499
centerlift 13454
centerlift0 105
centerliftii 9408
coefstoser 7
compo 312
deg1pol 522845
deg1pol_shallow 1780880
degree 0
denom 9173675
deriv 104195
derivser 9912
diffop 3535
diffop0 42
diviiround 10994543
divrem 896
err_intformal 35
floor_safe 7793
gceil 26940
gcvtoi 82167
gdeflate 210
gdivent 6085961
gdiventgs 1429
gdiventres 21021
gdiventsg 6084133
gdivmod 0
gdivround 496538
gdvd 3850
geq 1218362
geval 0
geval_gp 10129
gfloor 4050401
gfrac 91
gge 124174
ggrando 4655
ggt 132356
gimag 2497
gle 7721026
glt 6211586
gmod 7429023
gmodgs 13788
gmodsg 7122018
gmodulo 822838
gmodulsg 695360
gmodulss 600252
gne 21036792
gnot 259427
gppoldegree 5089
gprecision 2627948
greal 81314
grndtoi 8250028
ground 953521
gshift 37262814
gsubst 210286
gsubst_expr 35
gsubstpol 84
gsubstvec 756
gtocol 182
gtocol0 1197
gtocolrev 0
gtocolrev0 252
gtopoly 68187
gtopolyrev 2424415
gtoser 111265
gtovec 230713
gtovec0 231903
gtovecpost 1141
gtovecpre 343
gtovecrev 7
gtovecrev0 266
gtovecsmall 485863
gtovecsmall0 13447
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 882
gtrunc2n 10091175
gvar 98861400
gvar2 19904011
gvar9 47789
hqfeval 0
imag_i 351522
init_qf_apply 145544
init_vectopre 245
integ 350
integ_act 14
integser 10430
inv_ser 294
iscomplex 21
isinexact 128556047
isinexactreal 13125
isint 24486
isrationalzeroscalar 0
isrealappr 77902
issmall 7469
lift 135686
lift0 225199
lift_intern 218088
liftall 77
liftall_shallow 679
liftint 119
liftint_shallow 546
liftpol 98
liftpol_shallow 139013
listdeflate 21
lookup 833
mkcoln 0
mkintn 8827
mkpoln 1375845
mkvecn 16653
mkvecsmalln 2327
mod_r 168
modr_safe 450212
modrs 14
modsf 35
modsr 35
mulreal 11028468
multi_coeff 41965
numer 8238866
op_ReIm 1142100
padic_to_Q 8141
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 798
polcoeff0 59591
polcoeff_i 186718
poldeflate 112
poldegree 9161
poleval 678192
pollead 3341
poltoser 112686
prec0 10914
precCOMPLEX 1952698
precREAL 920006
precision 1273090
precision0 3192
precrealexact 326712
qf_apply_RgM 490
qf_apply_ZM 145054
qfbil 42
qfeval 21
qfevalb 21
qfnorm 56
quot 553
quotfi 7
quotfs 77
quotrem 343
quotri 7
quotrs 14
quotsf 35
quotsr 35
real_i 6463073
recvar 329
rfractoser 110684
round0 3493
round_i 15618942
roundr 1376097
roundr_safe 9610196
scalarpol 5165594
scalarpol_shallow 245534
scalarser 125503
ser2pol_i 3343926
ser2rfrac 252
ser2rfrac_i 3332
ser_unscale 602
serdeflate 35
serreverse 49
simplify 10856540
simplify_shallow 307774865
swapvar_act 21
tayl 7
tayl_act 7
toser_i 653085
triv_integ 35
trunc0 217
uu32toi 108055
var2_aux 8561
var2_polmod 1526
var2_rfrac 7035
variables_vec 14
variables_vecsmall 7
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 224
vecdenom 777

Generated by: LCOV version 1.9