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 30702-bddb8d6928) Lines: 3110 3230 96.3 %
Date: 2026-02-23 02:23:56 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
makeV4pairssimple 5
polsubcycloC3 5
polsubcycloC3_i 5
polsubcycloC5 5
makeA56 6
makeA56resolvent 6
makeA5cond 6
makeA5 12
makeC2resolvent 12
makeC32D4resolvent 12
makeC3resolvent 12
makeC4resolvent 12
makeD612resolvent 12
makeD9resolvent 12
makeS32resolvent 12
makeS3resolvent 12
nfmakesomehard 12
vecs14 12
vecsliceA5 12
makeV4pairs 15
condrel_dummy 18
divispowerall 18
divissquare 18
makeA5_i 18
makeC1resolvent 18
makeC3C3resolvent 18
makeS36resolvent 18
makeV4resolvent 18
okgal2 18
polsubcycloV4_i 20
gceilsqrtdiv 24
group_add_elt 24
makeA4S4resolvent 24
makeC1vec 24
makeC32C4resolvent 24
makeC6resolvent 24
makepol6abs 24
mybnrclassfield_N 24
makeA5condvec 30
makeDLresolvent 30
makeMgenresolvent 30
nfY 30
parselectS36 30
makeC32D4vec 36
makeC5vec 36
makeS32vec 36
makeS3C3vec 36
makeS46Mvec 36
makeV4vec 36
divissquareall 42
doC32C4 42
makeA4 42
makeA46 42
makeA462 42
makeA462vec 42
makeA4_i 42
makeC32C4vec 42
makeC32D4 42
makeC3C3 42
makeC3C3vec 42
makeC5 42
makeC9vec 42
makeCLresolvent 42
makeD612vec 42
makeD9vec 42
makeS32 42
makeS36vec 42
makeS3C3 42
makeS462 42
makeS46P 42
makeV4 42
polsubcycloC4 45
C5bnf 46
arch3 48
makeA56vec 48
makeC32C4 48
makeC32C4_i 48
makeC9 48
makeD612 48
makeS462vec 48
makeS46M 48
arch1 54
arch1g 54
arch2 54
arch2g 54
gal_get_order 54
makeA56vec_i 54
makeC1 54
makeD9 54
makeS36 54
mynfsubfields 54
vecs 60
extractS3cond 66
makeC3 66
makeS32common 66
makeS4 66
makeS4_i 66
nflist_C9_worker 66
ceilsqrtndiv 72
makeD4vec 72
archA462 78
gets2s3 78
makeA46S46Pvec 78
makeA4S4vec 78
makeC6vec 78
makeCL_f 81
archS4621 84
archS4623 84
makeA5vec 84
ZX_red_disc 90
makeC6 90
makeCL 90
minlim 90
condrelresolvent 96
lcmiu 96
makeC3_i 96
mullist2 96
arch0 108
decp 108
makeMgen 108
makepolC3 108
polsubcyclofast 110
polsubcyclofast_i 110
makeA5vec_i 114
makeC2 114
makeC4vec 114
makeC4vec_i 114
makeMgenvec 120
A5vec 132
makeD4 132
makeC2vec 138
nfmakesome 144
archD40 150
archD41 150
cubicimag 150
nflist_A462_worker 150
archD42 156
C3vec 162
ceilsqrt 162
floorsqrt 162
condrel 168
cubicreal 174
bnrcfC9 180
condrel_i 180
zvV_to_ZXV 180
makeC3vec 186
mynfsubfield 186
C3vec_F 192
nflist_C3C3_worker 192
getarchD4 204
makeCLvec 204
P2Nfa 210
ceilsqrtn 210
nflist_S46M_worker 216
A5file 234
nflistfile 234
vecsliceA5all 234
vecslicebyX 234
Sextract 240
makeC3_f 276
sum2sq 282
makeS46Ppols 294
checkcondC3 305
divisorsdisc 332
nflist_S3C3_worker 354
C5cleanB 364
checkfield 366
nflist_S3R_worker 366
sceilsqrtn 366
nfresolvent_small 378
MgenF 396
prMconj 396
nfresolvent 450
nfresolvent_i 450
makepolS32 480
doA4S4 546
glco46M 546
makeS46Mpols 546
makeC4 552
cmp2 600
A4clean3 606
ok_s 618
divisorsabsdisc 630
ZX_red_disc2 642
nflist_D612_worker 672
C3pol_f 738
nflist_C6_worker 744
nflist_A46S46P_worker 756
ok_disc 786
getpol 816
nflist_S462_worker 822
nflist_S3I_worker 882
okfield 888
divisorsdisc_i 962
nflist_C32C4_worker 972
gceilsqrtn 996
makeDLvec 1038
nonabelianfilter 1080
cyclicprimegen 1104
makeS3vec 1128
cored 1164
makeDL 1224
nflist_D9_worker 1314
floorsqrtndiv 1386
lcmuu 1440
ok_intu 1536
C5prim 1552
makepolC5 1552
X2m 1614
nfmakevecnum 1632
nfmakenum 1710
nflist_C4vec_worker 1926
C4vec 1932
grouptranslate 1980
okgal1 2040
fa_is_fundamental_pm 2072
cyclicgalois 2256
isprM 2274
nflist_Mgen_worker 2406
checkfield_i 2412
getpell 2442
nflist_parapply 2490
okgal 2496
sturmseparate 2502
doC32C4_i 2538
floorsqrtn 2844
fund_pm 2994
isok3 3108
nflist_D4_worker 3174
nflist_C5_worker 3390
polsubcycloC5_i 3430
checkcondCL 3511
nflist_C3_worker 3570
issquareclass 3576
makeA5resolvent 3618
stable_arch 3870
Y2m 4212
nflist_V4_worker 4308
ufund_pm 4494
group_nTk 4587
ceildiv 4890
cycfindaut 5052
X2p 5400
checkcondell_i 5425
ideallistsquare 5508
nflist_DL_worker 5514
ceilsqrtdiv 6118
Pell2prfa 6189
nflist_S32_worker 6402
nflist 6567
usum2sq 6734
P2fa 6805
makepol6 7284
C6fill 7458
checkcondDL 8946
cubictypedec 9768
RgXV_polred 9786
nflist_CL_worker 9786
bnf_get_disc 10482
pol2s 10830
nflist_S36_worker 12630
bnfY 17313
doA462 17358
nflist_A4S4_worker 19458
nflist_A4S4_worker_i 19470
makepolC4 20251
S4_get_disc 20442
eltlist2 20544
makeGid 20544
makevunits 20544
C32D4pol 21678
cyc_is_trivial 21678
divide 23334
nflist_C32D4_worker 23376
bigdisc 23388
oddnorm 23502
C4qfbsolve 23659
polsubC4_D 23659
_nfsubfields1 24402
_nfsubfields 27162
RgVV_nb 29454
idlist 29454
S4makeidclass 30018
floorsqrtdiv 30846
gtoset_shallow 30937
gfloorsqrtdiv 32778
S4makeid 34650
zv_is_1 35538
A4S4_fa 35652
makeA4S4 35952
aut2 36204
ZV_is_1 39306
myshallowconcat1 49279
quadcubpow 49398
r2 49998
polsubcycloC4_i 51915
S4data 56394
checkS4data 56394
ZV_iseven 94404
issolvable 94404
to_principal_unit 94404
mybnrclassfield 124527
authI 152004
polD4onecond 152004
mybnrclassfield_X 158271
polV4 201600
is_fundamental_pm 260292
uC3pol_f 355632
ok_int 497838
nfcoredisc2 539316
nfcoredisc 552666
uis_fundamental_pm 602424
uis_fundamental_pm_i 609882
checkU 961440
sfloordiv 1053126
sceildiv 1916964

Generated by: LCOV version 1.16