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 30733-eb2d773d38) Lines: 3259 3395 96.0 %
Date: 2026-03-03 09:24:12 Functions: 327 335 97.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
A4S4_fa 41593
A4clean3 707
A5file 273
A5vec 154
C32D4pol 25291
C3pol_f 861
C3vec 196
C3vec_F 231
C4qfbsolve 27666
C4vec 2253
C5bnf 105
C5cleanB 518
C5prim 2219
C6fill 8698
Cpq_snew 112
MgenF 462
P2Nfa 294
P2fa 8120
Pell2prfa 7224
RgVV_nb 34363
RgXV_polred 11415
S4_get_disc 23848
S4data 65782
S4makeid 40425
S4makeidclass 35020
Sextract 280
X2m 1883
X2p 6299
Y2m 4906
ZV_is_1 45775
ZV_iseven 110122
ZX_red_disc 105
ZX_red_disc2 749
_nfsubfields 31679
_nfsubfields1 28459
arch0 126
arch1 63
arch1g 63
arch2 63
arch2g 63
arch3 56
archA462 91
archD40 175
archD41 175
archD42 182
archS4621 98
archS4623 98
aut2 42238
authI 177327
bigdisc 27276
bnfY 20189
bnf_get_disc 12229
bnrcfC9 210
ceildiv 5697
ceilsqrt 196
ceilsqrtdiv 7151
ceilsqrtn 280
ceilsqrtndiv 84
checkS4data 65782
checkU 1095962
checkcondC3 357
checkcondCL 4753
checkcondDL 10437
checkcondell_i 6949
checkfield 427
checkfield_i 2912
cmp2 700
condrel 196
condrel_dummy 21
condrel_i 210
condrelresolvent 112
cored 1393
cubicimag 175
cubicreal 203
cubictypedec 11396
cyc_is_trivial 25291
cycfindaut 5894
cyclicgalois 2632
cyclicprimegen 1288
decp 126
divide 27176
divis_if_dvd 126
divisorsabsdisc 735
divisorsdisc 392
divisorsdisc_i 1127
divispowerall 21
divissquare 21
divissquareall 49
doA462 20251
doA4S4 637
doC32C4 49
doC32C4_i 2961
eltlist2 23968
extractS3cond 77
fa_is_fundamental_pm 2450
find_by_deg 49
floorsqrt 196
floorsqrtdiv 35982
floorsqrtn 3353
floorsqrtndiv 1617
fund_pm 3500
gal_get_order 63
gceilsqrtdiv 28
gceilsqrtn 1162
getarchD4 238
getpell 2849
getpol 952
gets2s3 91
gfloorsqrtdiv 38234
glco46M 637
group_add_elt 28
group_nTk 6209
grouptranslate 2415
gtoset_shallow 36170
ideallistsquare 6426
idlist 34362
isCp 231
is_fundamental_pm 308910
isok3 3626
isprM 2653
issolvable 110137
issquareclass 4172
lcmiu 112
lcmuu 1676
makeA4 49
makeA46 49
makeA462 49
makeA462vec 49
makeA46S46Pvec 91
makeA4S4 41943
makeA4S4resolvent 28
makeA4S4vec 91
makeA4_i 49
makeA5 14
makeA56 7
makeA56resolvent 7
makeA56vec 56
makeA56vec_i 63
makeA5_i 21
makeA5cond 7
makeA5condvec 35
makeA5resolvent 4221
makeA5vec 98
makeA5vec_i 133
makeC1 63
makeC1resolvent 21
makeC1vec 28
makeC2 140
makeC2resolvent 14
makeC2vec 182
makeC3 77
makeC32C4 56
makeC32C4_i 56
makeC32C4resolvent 28
makeC32C4vec 49
makeC32D4 49
makeC32D4resolvent 14
makeC32D4vec 42
makeC3C3 49
makeC3C3resolvent 21
makeC3C3vec 49
makeC3_f 322
makeC3_i 112
makeC3resolvent 14
makeC3vec 224
makeC4 644
makeC4resolvent 14
makeC4vec 133
makeC4vec_i 133
makeC5 63
makeC5vec 77
makeC6 105
makeC6resolvent 28
makeC6vec 91
makeC9 56
makeC9vec 49
makeCL 105
makeCL_f 98
makeCLall 0
makeCLresolvent 49
makeCLvec 238
makeCpq 49
makeCpqresolvent 28
makeCpqresolvent_i 28
makeCpqsome 0
makeCpqvec 63
makeD4 154
makeD4vec 84
makeD612 56
makeD612resolvent 14
makeD612vec 49
makeD9 63
makeD9resolvent 14
makeD9vec 49
makeDL 1428
makeDLresolvent 35
makeDLvec 1211
makeGid 23968
makeMgen 126
makeMgenresolvent 35
makeMgenvec 140
makeS32 49
makeS32common 77
makeS32resolvent 14
makeS32vec 42
makeS36 63
makeS36resolvent 21
makeS36vec 49
makeS3C3 49
makeS3C3vec 42
makeS3resolvent 14
makeS3vec 1316
makeS4 77
makeS462 49
makeS462vec 56
makeS46M 56
makeS46Mpols 637
makeS46Mvec 42
makeS46P 49
makeS46Ppols 343
makeS4_i 77
makeV4 49
makeV4pairs 21
makeV4pairssimple 7
makeV4resolvent 21
makeV4vec 42
makepol6 8497
makepol6abs 28
makepolC3 126
makepolC4 23669
makepolC5 2219
makepolS32 560
makevunits 23967
minlim 105
mullist2 112
mybnrclassfield 145268
mybnrclassfield_N 28
mybnrclassfield_X 184635
mynfsubfield 217
mynfsubfields 63
myshallowconcat1 57610
nfY 35
nfcoredisc 644767
nfcoredisc2 629202
nflist 8624
nflist_A462_worker 175
nflist_A46S46P_worker 881
nflist_A4S4_worker 22692
nflist_A4S4_worker_i 22706
nflist_C32C4_worker 1131
nflist_C32D4_worker 27263
nflist_C3C3_worker 224
nflist_C3_worker 4191
nflist_C4vec_worker 2246
nflist_C5_worker 4589
nflist_C6_worker 868
nflist_C9_worker 77
nflist_CL_worker 11403
nflist_D4_worker 3699
nflist_D612_worker 783
nflist_D9_worker 1530
nflist_DL_worker 6425
nflist_Mgen_worker 2802
nflist_S32_worker 7469
nflist_S36_worker 14726
nflist_S3C3_worker 413
nflist_S3I_worker 1027
nflist_S3R_worker 427
nflist_S462_worker 959
nflist_S46M_worker 252
nflist_V4_worker 5021
nflist_parapply 2947
nflistfile 273
nfmakenum 2065
nfmakesome 168
nfmakesomehard 14
nfmakevecnum 2030
nfresolvent 553
nfresolvent_i 553
nfresolvent_small 441
nfshorten 224
nfsort 35
nonabelianfilter 1260
oddnorm 27418
ok_disc 917
ok_int 570899
ok_intu 1788
ok_s 721
okfield 1078
okgal 2912
okgal1 2380
okgal2 21
parselectS36 35
pol2s 12677
polD4onecond 177328
polV4 226730
polsubC4_D 27665
polsubcycloC2 0
polsubcycloC2_i 0
polsubcycloC3 7
polsubcycloC3_i 7
polsubcycloC4 63
polsubcycloC4_i 60351
polsubcycloC5 7
polsubcycloC5_i 4654
polsubcycloC6 0
polsubcycloC6_i 0
polsubcycloV4_i 28
polsubcyclofast 154
polsubcyclofast_i 154
prMconj 462
quadcubpow 57631
r2 58329
sceildiv 2164989
sceilsqrtn 427
sfloordiv 1191087
stable_arch 4515
sturmseparate 2940
sum2sq 329
to_principal_unit 110133
uC3pol_f 415044
ufund_pm 5243
uis_fundamental_pm 695733
uis_fundamental_pm_i 703137
uispq 133
usum2sq 7857
veccond_to_A5 0
vecs 70
vecs14 14
vecsliceA5 14
vecsliceA5all 273
vecsliceA5cond 0
vecslicebyX 273
zvV_to_ZXV 217
zv_is_1 41460

Generated by: LCOV version 1.16