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 - nflist.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30640-c2c58e18c5) Lines: 3111 3230 96.3 %
Date: 2026-01-27 08:51:18 Functions: 316 323 97.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
makeCLall 0
polsubcycloC2 0
polsubcycloC2_i 0
polsubcycloC6 0
polsubcycloC6_i 0
veccond_to_A5 0
vecsliceA5cond 0
makeC32D4resolvent 2
makeD9resolvent 2
makeC32D4vec 6
makeA56 7
makeA56resolvent 7
makeA5cond 7
makeC32D4 7
makeC3C3 7
makeC3C3vec 7
makeC9vec 7
makeD9vec 7
makeV4pairssimple 7
polsubcycloC3 7
polsubcycloC3_i 7
polsubcycloC5 7
makeC3C3resolvent 9
nflist_C9_worker 11
makeA5 14
makeC2resolvent 14
makeC3resolvent 14
makeC4resolvent 14
makeC9 14
makeD612resolvent 14
makeS32resolvent 14
makeS3resolvent 14
nfmakesomehard 14
vecs14 14
vecsliceA5 14
divispowerall 15
lcmiu 16
makeC32C4resolvent 16
ceilsqrtndiv 18
condrel_dummy 21
divissquare 21
makeA5_i 21
makeC1resolvent 21
makeCL 21
makeD9 21
makeS36resolvent 21
makeV4pairs 21
makeV4resolvent 21
okgal2 21
vecs 22
makeDLresolvent 23
makeCLresolvent 25
gceilsqrtdiv 28
group_add_elt 28
makeA4S4resolvent 28
makeC1vec 28
makeC6resolvent 28
makepol6abs 28
mybnrclassfield_N 28
polsubcycloV4_i 28
makeS462vec 30
nflist_C3C3_worker 32
arch3 33
makeA5condvec 35
makeMgenresolvent 35
nfY 35
parselectS36 35
bnrcfC9 36
makeS462 37
makeCL_f 38
arch1 40
arch2 40
makeC5vec 42
makeS32vec 42
makeS3C3vec 42
makeS46Mvec 42
makeV4vec 42
makeC3 47
divissquareall 49
doC32C4 49
makeA4 49
makeA46 49
makeA462 49
makeA462vec 49
makeA4_i 49
makeC32C4vec 49
makeC5 49
makeD612vec 49
makeS32 49
makeS36vec 49
makeS3C3 49
makeS46P 49
makeV4 49
gal_get_order 51
mynfsubfields 51
makeD4vec 54
C5bnf 56
makeA56vec 56
makeC32C4 56
makeC32C4_i 56
makeD612 56
makeS46M 56
prMconj 57
archS4621 60
archS4623 60
makeC6vec 61
arch1g 63
arch2g 63
makeA56vec_i 63
makeC1 63
makeS36 63
polsubcycloC4 63
makeMgen 66
makeC6 75
makeC3_i 76
makeD4 76
mullist2 76
extractS3cond 77
makeS32common 77
makeS4 77
makeS4_i 77
decp 78
makepolC3 78
makeMgenvec 80
ZX_red_disc 81
condrelresolvent 88
archA462 91
gets2s3 91
makeA46S46Pvec 91
makeA4S4vec 91
archD40 97
archD41 97
archD42 98
makeA5vec 98
arch0 103
ok_s 103
minlim 105
makeC2vec 107
getarchD4 130
makeA5vec_i 133
makeC2 133
makeC4vec 133
makeC4vec_i 133
condrel 142
C3vec 147
ceilsqrt 147
floorsqrt 147
zvV_to_ZXV 150
A5vec 154
polsubcyclofast 154
polsubcyclofast_i 154
makeC3vec 157
C3vec_F 164
cubicimag 165
makeCLvec 166
nfmakesome 168
nflist_A462_worker 175
condrel_i 180
mynfsubfield 181
cubicreal 183
ceilsqrtn 191
Sextract 214
nflist_D9_worker 219
floorsqrtndiv 237
lcmuu 240
makeC3_f 250
nflist_S46M_worker 252
ok_intu 256
A5file 273
nflistfile 273
vecsliceA5all 273
vecslicebyX 273
checkcondC3 279
divisorsdisc 290
P2Nfa 294
sum2sq 329
makeS46Ppols 343
checkfield 349
nfresolvent_small 393
MgenF 402
nflist_S3R_worker 407
sceilsqrtn 407
nflist_S3C3_worker 413
C5cleanB 427
nfresolvent 429
nfresolvent_i 429
nflist_S462_worker 432
makepolS32 560
doA4S4 637
glco46M 637
makeS46Mpols 637
makeC4 644
cmp2 700
A4clean3 707
divisorsabsdisc 717
ZX_red_disc2 731
nflist_D612_worker 784
C3pol_f 788
nflist_C6_worker 795
okgal1 805
okfield 844
nflist_A46S46P_worker 880
getpol 886
ok_disc 899
nflist_S3I_worker 999
divisorsdisc_i 1007
nflist_D4_worker 1093
gceilsqrtn 1120
nflist_C32C4_worker 1131
makeDLvec 1133
cored 1136
nonabelianfilter 1194
cyclicprimegen 1222
makeS3vec 1296
makeDL 1344
cycfindaut 1358
group_nTk 1431
nfmakevecnum 1446
cyclicgalois 1456
nfmakenum 1539
grouptranslate 1716
C5prim 1819
makepolC5 1820
X2m 1879
ideallistsquare 1890
nflist_C4vec_worker 2245
C4vec 2251
Y2m 2262
okgal 2275
checkfield_i 2310
nflist_Mgen_worker 2339
getpell 2381
fa_is_fundamental_pm 2420
ceildiv 2490
nflist_parapply 2543
sturmseparate 2605
isprM 2653
floorsqrtn 2778
doC32C4_i 2961
nflist 3147
fund_pm 3475
C32D4pol 3616
cyc_is_trivial 3616
isok3 3623
nflist_C32D4_worker 3896
bigdisc 3898
nflist_C5_worker 3945
polsubcycloC5_i 3994
nflist_C3_worker 4007
checkcondCL 4032
issquareclass 4172
makeA5resolvent 4221
stable_arch 4515
nflist_CL_worker 4826
RgXV_polred 4829
nflist_DL_worker 4963
nflist_V4_worker 5024
_nfsubfields1 5081
ufund_pm 5241
Pell2prfa 5712
_nfsubfields 6024
checkcondell_i 6084
X2p 6177
aut2 6424
P2fa 6482
ceilsqrtdiv 7151
nflist_S32_worker 7458
usum2sq 7857
checkcondDL 8253
makepol6 8373
C6fill 8515
bnf_get_disc 8899
cubictypedec 11396
bnfY 11674
pol2s 11924
nflist_S36_worker 14717
doA462 20251
nflist_A4S4_worker 22698
nflist_A4S4_worker_i 22712
makepolC4 23595
S4_get_disc 23849
eltlist2 23968
makeGid 23968
makevunits 23968
divide 27096
oddnorm 27418
polsubC4_D 27605
C4qfbsolve 27611
authI 30242
polD4onecond 30242
RgVV_nb 34363
idlist 34363
floorsqrtdiv 34512
gtoset_shallow 34889
S4makeidclass 35021
gfloorsqrtdiv 36762
S4makeid 40425
zv_is_1 41461
A4S4_fa 41594
mybnrclassfield 41756
makeA4S4 41944
myshallowconcat1 45043
ZV_is_1 45691
quadcubpow 57625
r2 58331
mybnrclassfield_X 58571
polsubcycloC4_i 60037
S4data 65787
checkS4data 65787
ZV_iseven 110113
issolvable 110134
to_principal_unit 110137
polV4 224515
is_fundamental_pm 296978
uC3pol_f 414136
ok_int 565953
nfcoredisc2 629202
nfcoredisc 644757
uis_fundamental_pm 670397
uis_fundamental_pm_i 680132
checkU 1085784
sfloordiv 1179779
sceildiv 2139002

Generated by: LCOV version 1.16