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 - kernel/none - level1.h (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30676-32b8a71ec1) Lines: 605 680 89.0 %
Date: 2026-02-14 09:22:40 Functions: 214 238 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4402871055
Fl_addmul_pre 7682975750
Fl_addmulmul_pre 64636285
Fl_center 4486194
Fl_div 46583266
Fl_double 469154671
Fl_ellj_pre 238054
Fl_halve 18805460
Fl_mul 2421874975
Fl_mul_pre 4097984074
Fl_neg 724004667
Fl_sqr 95867063
Fl_sqr_pre 2178054709
Fl_sub 7281050211
Fl_triple 94466992
Mod16 389733
Mod2 2370164
Mod32 311108
Mod4 43787246
Mod64 0
Mod8 2073953
abscmpiu 33123125
abscmpui 33123273
absequaliu 39398159
absequalui 41147136
absi 2067452772
absi_shallow 58171956
absr 140
absrnz_equal1 4519929
absrnz_equal2n 1292683
addii 12407143807
addir 481436150
addis 181558848
addiu 96918459
addri 1106279
addrr 2877772617
addrs 12305071
addsi 306744264
addss 25067
addui 100562635
adduu 3409610516
affectsign 0
affectsign_safe 10727007
affii 910480829
affrr_fixlg 54654304
affsi 6373365
affsr 486187002
affui 45473825
affur 13462051
ceildivuu 3902340
cgetg 24560365502
cgetg_block 424961
cgetg_copy 1480337448
cgeti 27076832914
cgetineg 294837609
cgetipos 16303485656
cgetr 1840411109
cgetr_block 43763
cmpir 9433350
cmpis 3634912
cmpiu 10132041
cmpri 282310
cmprs 40996
cmpsi 3866911
cmpsr 796103
cmpss 1392943
cmpui 10132060
cmpuu 1492952929
divii 14051136
divsi_rem 0
divss 0
divss_rem 0
dvdii 16566962
dvdiiz 0
dvdis 33709
dvdisz 0
dvdiu 576268
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdis 0
dvmdsBIL 7011618409
dvmdsi 0
dvmdss 0
dvmduBIL 165924327
equalis 1185506
equaliu 3018225
equalsi 1185687
equalui 3018224
evalexpo 13137081403
evallg 95206219532
evalprecp 78673068
evalvalp 81629576
evalvalser 21528999
expi 2448777255
expu 775458759
fixlg 104198127
fractor 7376919
gc_NULL 7962677
gc_bool 51991592
gc_const 15511999255
gc_double 184133658
gc_int 2631161
gc_long 242457116
gc_stoi 155885
gc_ulong 52052465
gc_utoi 468583
gc_utoipos 1153467
get_avma 0
hammingu 24048411
icopy 9051811451
icopyspec 117433677
int_bit 20948317
itor 714960049
itos 462153226
itos_or_0 43599927
itou 178275518
itou_or_0 3041723
leafcopy 4975714884
lg2prec 800116342
maxdd 3178376
maxss 9715398344
maxuu 4814877
mindd 264342
minss 2009633688
minuu 69172317
mod16 241108
mod2 61112903
mod2BIL 103303488
mod32 259
mod4 5084755
mod64 0
mod8 13162188
modis 19638526
modsi 45225506
modss 0
mpabs 2138237954
mpabs_shallow 13428463
mpadd 574521600
mpceil 0
mpcmp 2226392
mpcopy 665
mpdiv 665622
mpexpo 38872835
mpfloor 0
mpmul 837721061
mpneg 916828838
mpodd 115076442
mpround 1216582
mpshift 153219287
mpsqr 91019919
mpsub 251532921
mptrunc 49
mulis 466278661
muliu 374485793
mulri 38033907
mulrs 7181596
mulru 2765892
nbits2lg 2366531368
negi 636887956
negr 3671312
new_chunk 93216268435
rcopy 903251642
rdivii 13102772
rdiviiz 13146020
rdivis 0
rdivsi 0
rdivss 839647
real2n 1067065
real_0 1156535
real_0_bit 479412183
real_1 129814620
real_1_bit 4705038
real_m1 455
real_m2n 126
remii 3005904276
remis 0
remlll_pre 75887073
remsi 0
remss 0
rtor 295253594
sdivsi 102149
sdivsi_rem 51429833
sdivss_rem 0
set_avma 128992935501
setabssign 2204956052
shift_left 7677140289
shift_right 5633608361
shiftl 0
shiftlr 0
shiftr 177973967
shiftr_inplace 464367075
smodis 21176060
smodss 12589350
stack_calloc 110381
stack_calloc_align 3307
stack_malloc 46625158
stack_malloc_align 55497507
stackdummy 3644102168
stoi 772514924
stor 486542021
subii 7640084843
subir 3005093
subis 170918
subiu 131849736
subri 6128559
subrr 1000196319
subrs 16476025
subsi 6094068
subss 25067
subui 136822448
subuu 25067
thuemorseu 2851
togglesign 1912291658
togglesign_safe 125524916
truedivii 47028371
truedivis 266951
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 16693
udivuu_rem 2418330
ugcdiu 10113279
ugcdui 2737
umodi2n 48930749
umodsu 734126593
umodui 1296274
umuluu_le 5803291
umuluu_or_0 5518514
utoi 11890676968
utoineg 293976324
utoipos 14139123340
utor 13461924
uutoi 8804527032
uutoineg 362719
vali 190381601
varncmp 217197822
varnmax 203
varnmin 14728

Generated by: LCOV version 1.16