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 16375-9f41ae0) Lines: 1928 2129 90.6 %
Date: 2014-04-19 Functions: 191 200 95.5 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1451 1868 77.7 %

Function Name Sort by function name Hit count Sort by hit count
Itos 4907
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 13629
RgX_deflate_max 18936
RgX_degree 69
RgX_integ 98
_egal 5130978
_gtopoly 2379148
_polcoeff 1275
_quot 546
_quotfi 7
_quotfs 14
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 567
ceil_safe 18275
ceilr 574
centerlift 1400
centerlift0 98
centerliftii 889
checkdeflate 19020
coefstoser 7
compo 308
deg1pol 63
deg1pol_shallow 291631
degree 7
denom 9131245
deriv 78491
derivser 238
diffop 3556
diffop0 42
diviiround 8434246
divrem 896
err_intformal 35
floor_safe 3207
gceil 8577
gcvtoi 32679
gdeflate 182
gdivent 5497751
gdiventgs 385
gdiventres 917
gdiventsg 5496029
gdivmod 0
gdivround 232748
gdvd 3818
geq 602455
geval 0
geval_gp 9821
gfloor 2544075
gfrac 20265
gge 124262
ggrando 3661
ggt 136007
gimag 49
gle 7622041
glt 5933504
gmod 5834896
gmodgs 1589
gmodsg 5753119
gmodulo 637434
gmodulsg 624785
gmodulss 562183
gne 4528523
gnot 258505
gppoldegree 1624
gprecision 2614910
greal 90769
grndtoi 9594845
ground 630126
gshift 4170561
gsubst 525973
gsubst_expr 35
gsubstpol 56
gsubstvec 231
gtocol 182
gtocol0 518
gtocolrev 0
gtocolrev0 252
gtopoly 58179
gtopolyrev 2320969
gtoser 336
gtovec 211673
gtovec0 212170
gtovecpost 336
gtovecpre 336
gtovecrev 0
gtovecrev0 252
gtovecsmall 2177
gtovecsmall0 539
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 1435
gtrunc2n 8317189
gvar 94540145
gvar2 19900201
gvar9 15596
hqfeval 0
imag_i 366764
init_qf_apply 3418
init_vectopre 245
integ 371
integ_act 14
integser 406
iscomplex 35
isinexact 129200156
isinexactreal 112133
isint 3122
isrationalzeroscalar 0
isrealappr 70921
issmall 2891
lift 88602
lift0 151042
lift_intern 71893
liftall 49
liftall_shallow 30968
liftint 49
liftint_shallow 112
liftpol 49
liftpol_shallow 2009
listdeflate 21
lookup 854
mkcoln 0
mkintn 0
mkpoln 1032715
mkvecn 4711
mkvecsmalln 187713
mod_r 168
modr_safe 616909
modrs 14
modsf 35
modsr 35
mulreal 13040881
multi_coeff 67
numer 8203125
op_ReIm 382872
padic_to_Q 679
padic_to_Q_shallow 7
padicprec 133
padicprec_relative 595
polcoeff0 889
polcoeff_i 1230
poldeflate 112
poldegree 4361
poleval 524460
pollead 70
poltoser 168
prec0 15383
precCOMPLEX 1734998
precREAL 768750
precision 587518
precision0 1372
precrealexact 150535
qf_apply_RgM 437
qf_apply_ZM 2981
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 3235431
rfractoser 49
round0 1911
roundr 835823
roundr_safe 9963319
scalarpol 4628432
scalarpol_shallow 11541
scalarser 637
ser2pol_i 235010
ser2rfrac 910
ser2rfrac_i 1211
ser_unscale 462
serdeflate 14
serreverse 28
simplify 10797874
simplify_shallow 251716829
swapvar_act 28
tayl 14
tayl_act 14
toser_i 628871
triv_integ 35
trunc0 217
uu32toi 123768
var2_aux 7056
var2_polmod 14
var2_rfrac 7042
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 161
vecdenom 196

Generated by: LCOV version 1.9