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 16624-25b9976) Lines: 1924 2128 90.4 %
Date: 2014-06-24 Functions: 190 200 95.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1458 1868 78.1 %

Function Name Sort by function name Hit count Sort by hit count
Itos 3720
QpV_to_QV 40
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 16596
RgX_degree 51
RgX_integ 70
_egal 3657316
_gtopoly 1699355
_polcoeff 913
_quot 390
_quotfi 5
_quotfs 10
_quotri 10
_quotrs 30
_quotsf 25
_quotsr 75
_rfraccoeff 15
_sercoeff 645
ceil_safe 37003
ceilr 427
centerlift 6462
centerlift0 280
centerliftii 5437
checkdeflate 16656
coefstoser 5
compo 220
deg1pol 615
deg1pol_shallow 220705
degree 5
denom 6645273
deriv 56065
derivser 605
diffop 2540
diffop0 30
diviiround 6000485
divrem 640
err_intformal 25
floor_safe 2476
gceil 6262
gcvtoi 47518
gdeflate 130
gdivent 3926965
gdiventgs 275
gdiventres 655
gdiventsg 3925735
gdivmod 0
gdivround 166318
gdvd 2728
geq 433401
geval 0
geval_gp 7015
gfloor 1843197
gfrac 14720
gge 88798
ggrando 2615
ggt 97149
gimag 35
gle 5514005
glt 4236486
gmod 4177367
gmodgs 9709
gmodsg 4109970
gmodulo 443890
gmodulsg 434846
gmodulss 389846
gne 3223915
gnot 184621
gppoldegree 1190
gprecision 1851180
greal 111524
grndtoi 6810814
ground 536077
gshift 2839767
gsubst 376247
gsubst_expr 25
gsubstpol 40
gsubstvec 165
gtocol 130
gtocol0 370
gtocolrev 0
gtocolrev0 180
gtopoly 41520
gtopolyrev 1657835
gtoser 245
gtovec 151195
gtovec0 151550
gtovecpost 240
gtovecpre 240
gtovecrev 0
gtovecrev0 180
gtovecsmall 1635
gtovecsmall0 390
gtovecsmallpost 60
gtovecsmallpre 60
gtrunc 1065
gtrunc2n 5617297
gvar 67852104
gvar2 14292495
gvar9 19884
hqfeval 0
imag_i 262017
init_qf_apply 102486
init_vectopre 175
integ 265
integ_act 10
integser 1000
iscomplex 25
isinexact 93732962
isinexactreal 80095
isint 2230
isrationalzeroscalar 0
isrealappr 45802
issmall 2065
lift 63123
lift0 107758
lift_intern 51357
liftall 35
liftall_shallow 22120
liftint 40
liftint_shallow 85
liftpol 35
liftpol_shallow 1435
listdeflate 15
lookup 610
mkcoln 0
mkintn 0
mkpoln 663144
mkvecn 3365
mkvecsmalln 69583
mod_r 120
modr_safe 436976
modrs 10
modsf 25
modsr 25
mulreal 9314915
multi_coeff 49
numer 5971185
op_ReIm 299081
padic_to_Q 485
padic_to_Q_shallow 5
padicprec 95
padicprec_relative 425
polcoeff0 875
polcoeff_i 882
poldeflate 80
poldegree 3295
poleval 384739
pollead 1524
poltoser 120
prec0 11253
precCOMPLEX 1233783
precREAL 546835
precision 425420
precision0 980
precrealexact 107520
qf_apply_RgM 318
qf_apply_ZM 102168
qfbil 30
qfeval 15
qfevalb 15
qfnorm 40
quot 355
quotfi 5
quotfs 10
quotrem 185
quotri 10
quotrs 20
quotsf 25
quotsr 50
real_i 2343362
rfractoser 35
round0 1365
roundr 591703
roundr_safe 7541786
scalarpol 3294055
scalarpol_shallow 8458
scalarser 960
ser2pol_i 203659
ser2rfrac 690
ser2rfrac_i 1200
ser_unscale 330
serdeflate 10
serreverse 40
simplify 7708838
simplify_shallow 184343320
swapvar_act 20
tayl 10
tayl_act 10
toser_i 451573
triv_integ 25
trunc0 155
uu32toi 77960
var2_aux 5040
var2_polmod 10
var2_rfrac 5030
vdeflate 45
vec_padicprec 15
vec_padicprec_relative 115
vecdenom 140

Generated by: LCOV version 1.9