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 30218-f32872418f) Lines: 607 765 79.3 %
Date: 2025-04-27 09:18:32 Functions: 220 285 77.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4307556401
Fl_addmul_pre 7567232555
Fl_addmulmul_pre 55817453
Fl_center 4023660
Fl_div 46267610
Fl_double 452186619
Fl_ellj_pre 224647
Fl_halve 16993190
Fl_mul 2374073131
Fl_mul_pre 3951614133
Fl_neg 706994259
Fl_sqr 92071261
Fl_sqr_pre 2104430330
Fl_sub 7179412551
Fl_triple 89641299
Mod16 277446
Mod2 2024379
Mod32 199255
Mod4 43882375
Mod64 0
Mod8 2070299
abscmpiu 30811609
abscmpui 30811653
absequaliu 39566793
absequalui 41315700
absi 2051986494
absi_shallow 57365868
absr 140
absrnz_equal1 4515398
absrnz_equal2n 1288147
addii 12314000059
addiiz 0
addir 474969537
addirz 0
addis 180553743
addiu 93367260
addri 1101824
addriz 0
addrr 2854903770
addrrz 1307127
addrs 12157205
addsi 305737430
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 96865938
adduu 3393015546
affectsign 0
affectsign_safe 10723647
affii 908550547
affiz 282968
affrr_fixlg 55445388
affsi 6169591
affsr 492340012
affsz 0
affui 45472040
affur 13439152
ceildivuu 3723525
cgetg 24261301868
cgetg_block 387409
cgetg_copy 1456029101
cgeti 27035839868
cgetineg 263834282
cgetipos 16293013489
cgetr 1843826877
cgetr_block 42601
cmpir 9229596
cmpis 3632644
cmpiu 9653875
cmpri 282261
cmprs 40996
cmpsi 3864598
cmpsr 824645
cmpss 1314830
cmpui 9653935
cmpuu 1435008884
divii 14018449
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 508
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16023452
dvdiiz 1316
dvdis 33912
dvdisz 0
dvdiu 576450
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 7014911270
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 165080391
equalis 1096817
equaliu 2955382
equalsi 1096999
equalui 2955382
evalexpo 13158265542
evallg 94634304405
evalprecp 78665206
evalvalp 81621885
evalvalser 21442638
expi 2426134987
expu 778464055
fixlg 103286699
fractor 7375004
gc_NULL 7639133
gc_bool 50781685
gc_const 15426144072
gc_double 180633412
gc_int 2570053
gc_long 238081161
gc_stoi 150801
gc_ulong 36251384
gc_utoi 468616
gc_utoipos 1123628
get_avma 0
icopy 9034866622
icopyspec 115826770
int_bit 21050153
itor 707720764
itos 455572862
itos_or_0 24019637
itou 170790982
itou_or_0 2995382
leafcopy 4918659842
lg2prec 802021728
maxdd 3125877
maxss 9505005049
maxuu 4748771
mindd 257523
minss 2004007536
minuu 66235864
mod16 236237
mod2 60387160
mod2BIL 100959465
mod32 259
mod4 4675667
mod64 0
mod8 12869209
modis 19602559
modisz 0
modsi 45222802
modsiz 0
modss 0
modssz 0
mpabs 2122339377
mpabs_shallow 13428449
mpadd 570600991
mpaddz 0
mpaff 674866
mpceil 0
mpcmp 2140782
mpcopy 708
mpdiv 664941
mpexpo 38550254
mpfloor 0
mpmul 832604984
mpmulz 0
mpneg 912376497
mpodd 114057502
mpround 1216518
mpshift 153109344
mpsqr 90150819
mpsub 250490081
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 463724319
muliu 370520509
mulri 37886025
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2765822
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2364134652
negi 634229720
negr 3517763
new_chunk 92691033590
rcopy 893739558
rdivii 13094389
rdiviiz 13137476
rdivis 0
rdivsi 0
rdivss 839647
real2n 1060223
real_0 1064277
real_0_bit 475012284
real_1 130450774
real_1_bit 4699069
real_m1 455
real_m2n 126
remii 2985619467
remiiz 0
remis 0
remisz 0
remlll_pre 75060923
remsi 0
remsiz 0
remss 0
remssz 0
rtor 298046822
sdivsi 102150
sdivsi_rem 51427130
sdivss_rem 0
set_avma 128090296495
setabssign 2188477273
shift_left 7693237153
shift_right 5621112780
shiftl 0
shiftlr 0
shiftr 178479400
shiftr_inplace 476442909
smodis 21140226
smodss 12515991
stack_calloc 109107
stack_calloc_align 3300
stack_malloc 45914371
stack_malloc_align 54711012
stackdummy 3596223331
stoi 743846562
stor 492631951
subii 7604834130
subiiz 28
subir 3003811
subirz 0
subis 170866
subisz 0
subiu 128773299
subri 6048462
subriz 0
subrr 992459032
subrrz 1296706
subrs 16314492
subrsz 0
subsi 5886159
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132942185
subuu 25067
togglesign 1907904461
togglesign_safe 124455825
truedivii 45980555
truedivis 248454
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 19089
udivuu_rem 158896721
ugcdiu 9980598
ugcdui 2737
umodi2n 48453383
umodsu 721073145
umodui 1296213
umuluu_le 5800680
umuluu_or_0 5533425
utoi 11805252845
utoineg 262980682
utoipos 14123334588
utor 13439043
uutoi 8763463229
uutoineg 355929
vali 186127458
varncmp 216727234
varnmax 203
varnmin 15547

Generated by: LCOV version 1.16