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-02 08:08:24 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 2366222
RgX_deflate_max 514565
RgX_deflate_order 527242
RgX_degree 502998
RgX_derivn 833
RgX_integ 105
ZX_deflate_max 316239
ZX_deflate_order 511391
_abs 518
_egal 108038983
_egal_i 108038980
_gtopoly 3468749
_polcoef 2251790
_quot 875
_quotfi 7
_quotfs 301
_quotqs 28
_quotri 7
_quotrs 28
_quotsf 35
_quotsq 70
_quotsr 70
_rfraccoef 21
_sercoef 113081
ceil_safe 1040369
ceilr 2111
centerlift 60473
centerlift0 707
centerliftii 42518
compo 313
constmat 14
content0 131005
deg1pol 556143
deg1pol_shallow 8390832
deg2pol_shallow 318629
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 65767333
divrem 1057
err_intformal 35
floor_safe 62141
gceil 30221
gcvtoi 1113986
gdeflate 14525
gdivent 6200418
gdiventgs 296938
gdiventres 1064
gdiventsg 6198230
gdivmod 0
gdivround 1465017
gdvd 15804
geq 47184277
geval 0
geval_gp 11020
gfloor 5335075
gfrac 221841
gge 248429
ggrando 6657
ggt 2374039
gimag 29344
gle 7628242
glt 6328102
gmod 46136989
gmodgs 22028056
gmodsg 44990132
gmodulo 1599050
gmodulsg 1076953
gmodulss 774519
gne 60854695
gnot 603883
gppadicprec 105
gppoldegree 30895
gprecision 14122738
gpserprec 42
greal 6783
grndtoi 89679653
ground 2798714
gshift 48442061
gsubst 2737505
gsubst_v 84
gsubstpol 8708
gsubstvec 959
gtocol 196
gtocol0 3626
gtocolrev 0
gtocolrev0 273
gtopoly 1034616
gtopolyrev 2434131
gtovec 101716
gtovec0 106035
gtovecpost 1064
gtovecpre 3591
gtovecrev 0
gtovecrev0 287
gtovecsmall 18935
gtovecsmall0 7707
gtovecsmallpost 91
gtovecsmallpre 91
gtrunc 188802
gtrunc2n 113563073
gvar 128597161
gvar2 20639983
gvar9 55160
hqfeval 0
imag_i 286677905
init_qf_apply 497990
init_vectopre 3535
integ 350
integ_act 14
integser 25878
is_realext 177324
is_realquad 1099
iscomplex 0
isinexact 132081380
isinexactreal 14343
isint 445591
isrationalzeroscalar 0
isrealappr 1802615
issmall 326463
lift 2151424
lift0 2302307
lift_shallow 590706
liftall 26243
liftall_shallow 2003435
liftint 119
liftint_shallow 546
liftpol 5656
liftpol_shallow 21209037
listdeflate 21
lookup 833
mkcoln 1379
mkintn 19526
mkpoln 5469780
mkvecn 1111422
mkvecsmalln 125903
modRr_i 4856451
modRr_safe 0
mod_r 196
modrs 14
modsf 35
modsr 35
mulreal 12051425
numer 8631
numer_i 8977715
numerator 8925
op_ReIm 197103347
padic_to_Q 269724
padic_to_Q_shallow 14
padicprec 4172
padicprec_relative 2359
polcoef 728903
polcoef_i 2952466
poldeflate 8722
poldegree 102184
poleval 2892236
pollead 329
prec0 10265888
precCOMPLEX 22262774
precREAL 928847389
precision 941066409
precrealexact 1189997
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 321464708
recvar 26579
rfrac_deriv 56
rfrac_derivn 42
round0 6020
round_i 53393622
roundr 3657910
roundr_safe 285522
scalarmat2 56
scalarpol 16895219
scalarpol_shallow 3604625
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 10809971
simplify_shallow 526864693
subst_higher 750099
subst_polmod 10969
swapvar_act 28
tayl 21
tayl_act 14
trunc0 217
uu32toi 241473
uu32toineg 72127
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