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 17110-9967e23) Lines: 1957 2153 90.9 %
Date: 2014-11-26 Functions: 192 202 95.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1476 1888 78.2 %

Function Name Sort by function name Hit count Sort by hit count
Itos 3815
QpV_to_QV 40
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 17923
RgX_degree 9651
RgX_integ 70
_egal 4400240
_gtopoly 1699750
_polcoeff 74428
_quot 390
_quotfi 5
_quotfs 10
_quotri 10
_quotrs 30
_quotsf 25
_quotsr 75
_rfraccoeff 15
_sercoeff 640
ceil_safe 37924
ceilr 2418
centerlift 6525
centerlift0 280
centerliftii 5425
checkdeflate 17983
coefstoser 5
compo 220
deg1pol 670
deg1pol_shallow 226198
degree 0
denom 6651802
deriv 55505
derivser 600
diffop 2540
diffop0 30
diviiround 6398872
divrem 640
err_intformal 25
floor_safe 10066
gceil 8054
gcvtoi 55912
gdeflate 130
gdivent 3926585
gdiventgs 275
gdiventres 645
gdiventsg 3925355
gdivmod 0
gdivround 337265
gdvd 2765
geq 435955
geval 0
geval_gp 7010
gfloor 1840798
gfrac 65
gge 88680
ggrando 2605
ggt 97169
gimag 125
gle 5514025
glt 4236229
gmod 4185815
gmodgs 9798
gmodsg 4121390
gmodulo 464120
gmodulsg 453766
gmodulss 426041
gne 3964285
gnot 184851
gppoldegree 1650
gprecision 1612080
greal 113554
grndtoi 5616781
ground 560942
gshift 3927655
gsubst 49980
gsubst_expr 25
gsubstpol 40
gsubstvec 170
gtocol 130
gtocol0 370
gtocolrev 0
gtocolrev0 180
gtopoly 41895
gtopolyrev 1657855
gtoser 250
gtovec 152705
gtovec0 153065
gtovecpost 240
gtovecpre 240
gtovecrev 0
gtovecrev0 180
gtovecsmall 1685
gtovecsmall0 390
gtovecsmallpost 60
gtovecsmallpre 60
gtrunc 440
gtrunc2n 5674156
gvar 67946593
gvar2 14290434
gvar9 20205
hqfeval 0
imag_i 262818
init_qf_apply 102520
init_vectopre 175
integ 250
integ_act 10
integser 985
inv_ser 210
iscomplex 15
isinexact 93597482
isinexactreal 8355
isint 2180
isrationalzeroscalar 0
isrealappr 46357
issmall 2035
lift 51775
lift0 98485
lift_intern 48553
liftall 35
liftall_shallow 60
liftint 45
liftint_shallow 95
liftpol 35
liftpol_shallow 1695
listdeflate 15
lookup 610
mkcoln 0
mkintn 9585
mkpoln 676443
mkvecn 3395
mkvecsmalln 75547
mod_r 120
modr_safe 349069
modrs 10
modsf 25
modsr 25
mulreal 7613325
multi_coeff 25099
numer 5968660
op_ReIm 250469
padic_to_Q 475
padic_to_Q_shallow 5
padicprec 90
padicprec_relative 425
polcoeff0 3485
polcoeff_i 99077
poldeflate 80
poldegree 3790
poleval 406844
pollead 1439
poltoser 315
prec0 11411
precCOMPLEX 1055133
precREAL 551667
precision 426977
precision0 985
precrealexact 107500
qf_apply_RgM 315
qf_apply_ZM 102205
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 1926389
rfractoser 35
round0 1375
round_i 10581208
roundr 605690
roundr_safe 6700372
scalarpol 3321596
scalarpol_shallow 8310
scalarser 2265
ser2pol_i 165864
ser2rfrac 75
ser2rfrac_i 1170
ser_unscale 420
serdeflate 10
serreverse 35
simplify 7686465
simplify_shallow 185987453
swapvar_act 15
tayl 5
tayl_act 5
toser_i 436601
triv_integ 25
trunc0 155
uu32toi 75025
var2_aux 5080
var2_polmod 50
var2_rfrac 5030
vdeflate 45
vec_padicprec 15
vec_padicprec_relative 115
vecdenom 130

Generated by: LCOV version 1.9