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-bordeaux.fr machine (x86_64 architecture), and agregate them in the final report:

The target is to exceed 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.16.2 lcov report (development 29115-f22e516b23) Lines: 2408 2615 92.1 %
Date: 2024-05-01 08:07:45 Functions: 231 242 95.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Itos 18977
QpV_to_QV 196
RgC_RgV_mulrealsym 21315
RgM_mulreal 0
RgXY_cxevalx 63
RgX_cxeval 2366199
RgX_deflate_max 514573
RgX_deflate_order 527250
RgX_degree 502997
RgX_derivn 833
RgX_integ 105
ZX_deflate_max 316250
ZX_deflate_order 511402
_abs 518
_egal 108039055
_egal_i 108039065
_gtopoly 3468733
_polcoef 2251894
_quot 875
_quotfi 7
_quotfs 301
_quotqs 28
_quotri 7
_quotrs 28
_quotsf 35
_quotsq 70
_quotsr 70
_rfraccoef 21
_sercoef 113081
ceil_safe 1040315
ceilr 2111
centerlift 60473
centerlift0 707
centerliftii 42518
compo 313
constmat 14
content0 131005
deg1pol 556148
deg1pol_shallow 8390855
deg2pol_shallow 318626
degree 6790
denom 225024
denom_i 10349508
denominator 124264
denominator_v 287
denompol 119
deriv 114128
derivn 1351
derivnser 189
derivser 25248
diffop 3535
diffop0 42
diviiround 65764363
divrem 1057
err_intformal 35
floor_safe 62116
gceil 30221
gcvtoi 1113909
gdeflate 14525
gdivent 6200418
gdiventgs 296947
gdiventres 1064
gdiventsg 6198230
gdivmod 0
gdivround 1464999
gdvd 15807
geq 47184367
geval 0
geval_gp 11020
gfloor 5335077
gfrac 221841
gge 248430
ggrando 6657
ggt 2374039
gimag 29344
gle 7628239
glt 6328102
gmod 46136992
gmodgs 22028056
gmodsg 44990132
gmodulo 1599079
gmodulsg 1076981
gmodulss 774519
gne 60854695
gnot 603883
gppadicprec 105
gppoldegree 30895
gprecision 14122897
gpserprec 42
greal 6783
grndtoi 89686186
ground 2798760
gshift 48442289
gsubst 2737505
gsubst_v 84
gsubstpol 8708
gsubstvec 959
gtocol 196
gtocol0 3626
gtocolrev 0
gtocolrev0 273
gtopoly 1034600
gtopolyrev 2434131
gtovec 101716
gtovec0 106035
gtovecpost 1064
gtovecpre 3591
gtovecrev 0
gtovecrev0 287
gtovecsmall 18935
gtovecsmall0 7707
gtovecsmallpost 91
gtovecsmallpre 91
gtrunc 188801
gtrunc2n 113563423
gvar 128598485
gvar2 20639983
gvar9 55160
hqfeval 0
imag_i 286686657
init_qf_apply 497990
init_vectopre 3535
integ 350
integ_act 14
integser 25878
is_realext 177323
is_realquad 1099
iscomplex 0
isinexact 132081665
isinexactreal 14343
isint 445591
isrationalzeroscalar 0
isrealappr 1802643
issmall 326463
lift 2151431
lift0 2302314
lift_shallow 590706
liftall 26243
liftall_shallow 2003435
liftint 119
liftint_shallow 546
liftpol 5656
liftpol_shallow 21209056
listdeflate 21
lookup 833
mkcoln 1379
mkintn 19526
mkpoln 5470953
mkvecn 1111428
mkvecsmalln 125891
modRr_i 4856579
modRr_safe 0
mod_r 196
modrs 14
modsf 35
modsr 35
mulreal 12051337
numer 8631
numer_i 8977715
numerator 8925
op_ReIm 197204751
padic_to_Q 269723
padic_to_Q_shallow 14
padicprec 4172
padicprec_relative 2359
polcoef 728903
polcoef_i 2952613
poldeflate 8722
poldegree 102184
poleval 2892221
pollead 329
prec0 10265874
precCOMPLEX 22262578
precREAL 928817359
precision 941036151
precrealexact 1189980
qf_RgM_apply 7507
qf_ZM_apply 490483
qfb_ZM_apply 67214
qfbeval 347816
qfbevalb 7
qfbil 0
qfeval 16715
qfeval0 347935
qfevalb 21
qfnorm 0
qfnorm0 347879
quad_floor 518
quot 777
quotfi 7
quotfs 301
quotqs 14
quotrem 518
quotri 7
quotrs 14
quotsf 35
quotsq 35
quotsr 35
real_i 321945714
recvar 26579
rfrac_deriv 56
rfrac_derivn 42
round0 6020
round_i 53395071
roundr 3657956
roundr_safe 285522
scalarmat2 56
scalarpol 16895187
scalarpol_shallow 3604660
ser2pol_i 10070311
ser2pol_i_normalize 750158
ser2rfrac 539
ser2rfrac_i 10748
ser_inv 42057
ser_unscale 4193
serdeflate 5740
serequalXk 21052
serprec 112
serreverse 98
sertrunc 70
sertrunc_copy 1960
simplify 10809938
simplify_shallow 526864761
subst_higher 750099
subst_polmod 10969
swapvar_act 28
tayl 21
tayl_act 14
trunc0 217
uu32toi 241491
uu32toineg 72146
var2_aux 9968
var2_polmod 2933
var2_rfrac 7035
variables_vec 42
variables_vecsmall 1057
vdeflate 63
vec_padicprec 826
vec_padicprec_relative 413
vec_serprec 14
vecdenom 111541
vecdenompol 14

Generated by: LCOV version 1.14