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 18607-f2efcf2) Lines: 2026 2214 91.5 %
Date: 2016-02-12 Functions: 199 208 95.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1550 1956 79.2 %

Function Name Sort by function name Hit count Sort by hit count
Itos 944604
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_cxeval 298375
RgX_deflate_max 36557
RgX_degree 26957
RgX_integ 98
_egal 22133669
_egal_i 22133669
_gtopoly 2389863
_polcoeff 199682
_quot 546
_quotfi 7
_quotfs 77
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 1022
bitprecision0 28
ceil_safe 56598
ceilr 14177
centerlift 12376
centerlift0 98
centerliftii 10059
checkdeflate 36606
coefstoser 7
compo 312
deg1pol 5775
deg1pol_shallow 2201307
degree 0
denom 9171372
deriv 104195
derivser 8309
diffop 3535
diffop0 42
diviiround 11069236
divrem 896
err_intformal 35
floor_safe 7751
gceil 25281
gcvtoi 75391
gdeflate 210
gdivent 5500474
gdiventgs 1443
gdiventres 19754
gdiventsg 5498597
gdivmod 0
gdivround 493451
gdvd 3906
geq 1209059
geval 0
geval_gp 10129
gfloor 3978166
gfrac 91
gge 124152
ggrando 4550
ggt 130116
gimag 2022
gle 7720986
glt 6211579
gmod 7420021
gmodgs 13788
gmodsg 7116467
gmodulo 820690
gmodulsg 693603
gmodulss 598713
gne 20924610
gnot 259385
gppoldegree 4221
gprecision 2631938
greal 68805
grndtoi 8245856
ground 990859
gshift 37217631
gsubst 99959
gsubst_expr 35
gsubstpol 84
gsubstvec 756
gtocol 182
gtocol0 1197
gtocolrev 0
gtocolrev0 252
gtopoly 68754
gtopolyrev 2321109
gtoser 102977
gtovec 230706
gtovec0 231896
gtovecpost 1141
gtovecpre 343
gtovecrev 7
gtovecrev0 266
gtovecsmall 485737
gtovecsmall0 13447
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 896
gtrunc2n 9936965
gvar 98460712
gvar2 19903570
gvar9 45577
hqfeval 0
imag_i 338781
init_qf_apply 144984
init_vectopre 245
integ 350
integ_act 14
integser 8827
inv_ser 294
iscomplex 21
isinexact 128550332
isinexactreal 10269
isint 7483
isrationalzeroscalar 0
isrealappr 77616
issmall 7469
lift 134309
lift0 222296
lift_intern 212838
liftall 70
liftall_shallow 294
liftint 112
liftint_shallow 511
liftpol 91
liftpol_shallow 138166
listdeflate 21
lookup 833
mkcoln 0
mkintn 8827
mkpoln 1359282
mkvecn 15498
mkvecsmalln 1032
mod_r 168
modr_safe 448721
modrs 14
modsf 35
modsr 35
mulreal 11020116
multi_coeff 44303
numer 8236409
op_ReIm 1132951
padic_to_Q 7665
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 770
polcoeff0 51814
polcoeff_i 198590
poldeflate 112
poldegree 7754
poleval 567663
pollead 3572
poltoser 104384
prec0 10417
precCOMPLEX 1941460
precREAL 936421
precision 1235265
precision0 3129
precrealexact 326509
qf_apply_RgM 490
qf_apply_ZM 144494
qfbil 42
qfeval 21
qfevalb 21
qfnorm 56
quot 497
quotfi 7
quotfs 77
quotrem 259
quotri 14
quotrs 28
quotsf 35
quotsr 70
real_i 6448111
recvar 329
rfractoser 102515
round0 3423
round_i 15841333
roundr 1395289
roundr_safe 9818386
scalarpol 5140070
scalarpol_shallow 301569
scalarser 116753
ser2pol_i 3995405
ser2rfrac 252
ser2rfrac_i 3150
ser_unscale 602
serdeflate 35
serreverse 49
simplify 10847776
simplify_shallow 296168513
swapvar_act 21
tayl 7
tayl_act 7
toser_i 1339410
triv_integ 35
trunc0 217
uu32toi 107809
var2_aux 8393
var2_polmod 1358
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