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 16804-345a01c) Lines: 1953 2167 90.1 %
Date: 2014-09-20 Functions: 192 202 95.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1472 1900 77.5 %

Function Name Sort by function name Hit count Sort by hit count
Itos 5369
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_deflate_max 22809
RgX_degree 69
RgX_integ 98
_egal 5348441
_gtopoly 2379223
_polcoeff 1219
_quot 546
_quotfi 7
_quotfs 14
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 889
ceil_safe 50429
ceilr 518
centerlift 9366
centerlift0 392
centerliftii 7721
checkdeflate 22893
coefstoser 7
compo 308
deg1pol 861
deg1pol_shallow 309326
degree 7
denom 9130111
deriv 78512
derivser 847
diffop 3556
diffop0 42
diviiround 8031046
divrem 896
err_intformal 35
floor_safe 3329
gceil 8479
gcvtoi 64891
gdeflate 182
gdivent 5497751
gdiventgs 385
gdiventres 917
gdiventsg 5496029
gdivmod 0
gdivround 232862
gdvd 3815
geq 606732
geval 0
geval_gp 9835
gfloor 2580225
gfrac 20608
gge 124124
ggrando 3696
ggt 136003
gimag 182
gle 7719607
glt 5933318
gmod 5849543
gmodgs 13767
gmodsg 5754892
gmodulo 678811
gmodulsg 664965
gmodulss 602336
gne 4741709
gnot 258618
gppoldegree 1666
gprecision 2142235
greal 155591
grndtoi 7482616
ground 738199
gshift 4401272
gsubst 527275
gsubst_expr 35
gsubstpol 56
gsubstvec 231
gtocol 182
gtocol0 518
gtocolrev 0
gtocolrev0 252
gtopoly 58282
gtopolyrev 2320941
gtoser 364
gtovec 211673
gtovec0 212170
gtovecpost 336
gtovecpre 336
gtovecrev 0
gtovecrev0 252
gtovecsmall 2387
gtovecsmall0 546
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 1491
gtrunc2n 7718854
gvar 94295011
gvar2 19902546
gvar9 28385
hqfeval 0
imag_i 365897
init_qf_apply 143472
init_vectopre 245
integ 371
integ_act 14
integser 1386
inv_ser 294
iscomplex 35
isinexact 129190378
isinexactreal 112182
isint 3122
isrationalzeroscalar 0
isrealappr 63096
issmall 2891
lift 71263
lift0 133885
lift_intern 71508
liftall 49
liftall_shallow 30968
liftint 63
liftint_shallow 133
liftpol 63
liftpol_shallow 2373
listdeflate 21
lookup 854
mkcoln 0
mkintn 0
mkpoln 926876
mkvecn 4711
mkvecsmalln 104933
mod_r 168
modr_safe 463286
modrs 14
modsf 35
modsr 35
mulreal 10658655
multi_coeff 67
numer 8201914
op_ReIm 338363
padic_to_Q 679
padic_to_Q_shallow 7
padicprec 133
padicprec_relative 595
polcoeff0 1211
polcoeff_i 1174
poldeflate 112
poldegree 4599
poleval 535144
pollead 1906
poltoser 469
prec0 15874
precCOMPLEX 1437300
precREAL 697371
precision 578387
precision0 1386
precrealexact 150528
qf_apply_RgM 441
qf_apply_ZM 143031
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 2572508
rfractoser 49
round0 1925
round_i 12868776
roundr 815947
roundr_safe 7814821
scalarpol 4522203
scalarpol_shallow 11868
scalarser 3115
ser2pol_i 240291
ser2rfrac 966
ser2rfrac_i 1680
ser_unscale 588
serdeflate 14
serreverse 56
simplify 10779457
simplify_shallow 254687813
swapvar_act 28
tayl 14
tayl_act 14
toser_i 605700
triv_integ 35
trunc0 217
uu32toi 70471
var2_aux 7112
var2_polmod 70
var2_rfrac 7042
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 161
vecdenom 196

Generated by: LCOV version 1.9