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 - base3.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 29950-285c5b69ed) Lines: 2061 2170 95.0 %
Date: 2025-02-05 09:09:51 Functions: 227 238 95.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Ideallist 11333
Idealstar 938
Idealstarmod 258029
Idealstarmod_i 258303
Idealstarprk 273
Q_mod_bid 14
RgC_to_nfC 111879
RgM_RgX_mul 1365
RgM_to_nfM 6165
RgX_to_nfX 29285
ZC_add1 169780
ZC_cxlog 1715167
ZC_nfval 19747518
ZC_nfvalrem 24020090
ZC_prdvd 1251158
ZC_sub1 70497
ZMV_ZCV_mul 1755731
ZM_ZMV_mul 518
ZM_ZX_mul 9950848
ZV_snf_gcd 1953134
_mul 354423
_mulii 1086473013
_nf_add 3854262
_nf_inv 13443
_nf_mul 4491406
_nf_neg 203884
_nf_red 774478
_nf_s 3225
_sqr 982655
algtobasis 958208
apply_U 2156275
basistoalg 413969
bid_grp 258593
check_mod_factored 258940
check_nfelt 218964
checkarchp 134095
chineseinit_i 6026
chk_ind 36547
coltoalg 340808
concat_join 758584
cxlog_1 23138
cxlog_m1 532
ei_multable 39449
eltmul 327935
eltpow 465223
famatQ_to_famatZ 35
famat_abs 35
famat_cba 35
famat_cxlog 223285
famat_logembed 1309
famat_nfvalrem 420735
famat_norm 35
famat_sign 35
famat_strip2 258921
famat_to_nf_modideal_coprime 2622525
famat_zlog 1374208
famat_zlog_pr 1969540
famat_zlog_pr_coprime 196
get_C 608367
get_nf_field 54213
get_tab 39125888
gideallist 63
gpnfvalrem 15015
idealHNF_norm_pval 63
idealchinese 11283
idealfactorback 86485
ideallist 10563
ideallist0 11298
ideallistarch 14
ideallog 13769
ideallog_i 1383405
ideallog_units 84
ideallog_units0 227138
ideallogmod 1390086
idealprincipalunits 189
idealprincipalunits_i 169280
idealstar0 0
idealstarmod 112
idmul 72020
idmulred 56
idpow 87971
idpowred 413
indices_to_vec01 136896
init_zlog 380262
init_zlog_mod 1990801
is_chineseinit 11977
is_famat 53849575
isprfact 5557
join_arch 42
join_archunit 14
join_bid 469
join_bid_arch 42
join_ideal 268453
join_idealinit 469
join_unit 448
log_gen_arch 86265
log_gen_pr 413976
log_prk 2617661
log_prk1 1331681
log_prk_init 90243
log_prk_units 518
log_prk_units_init 49
low_prec 4612182
matalgtobasis 32269
matbasistoalg 2751
mulbytab 7013
multable 1890
nfC_multable_mul 30550
nfC_nf_mul 111199
nfM_det 14
nfM_inv 3211
nfM_ker 0
nfM_mul 2826
nfM_nfC_mul 48162
nfV_cxlog 97
nf_cxlog 1309616
nf_to_scalar_or_alg 4829666
nf_to_scalar_or_basis 121381553
nfadd 14240898
nfarchstar 567519
nfchecksigns 15272
nfchecksigns_i 80763
nfdiv 37518
nfdiveuc 259
nfdivrem 259
nfeltembed 728
nfeltembed_i 728
nfeltsign 125790
nfembed 0
nfembed_i 2140
nffactorback 265352
nfinv 188174
nfinvmodideal 189
nfispower 7711
nfissquare 1127
nflogembed 98712
nfmod 259
nfmul 24528160
nfmuli 4536879
nfmuli_ZC 8064160
nfmulmodideal 7293365
nfmulpowmodideal 4696211
nfnorm 223453
nfpolsturm 1967
nfpow 942306
nfpow_u 342907
nfpowmodideal 5847517
nfsetsigns 722309
nfsign 44240
nfsign_arch 1047679
nfsqr 6069152
nfsqri 4493428
nfsqri_ZC 7105579
nfsqrmodideal 2688545
nfsub 1429857
nftrace 21300
nfval 5604577
nfvalrem 3662672
num_positive 910230
oksigns 25034
order_update 560274
parse_embed 128478
pl_convert 1111
pl_normalize 2765
pol_to_scalar_or_basis 3467032
polmod_nffix 172621
polmod_nffix2 172712
poltobasis 9349050
powp 973413
pr_basis_perm 43813
pr_equal 357
pr_init 5557
principal_units 169288
principal_units_relations 56790
rnfalgtobasis 1428
rnfbasistoalg 56917
rnfeltnorm 462
rnfelttrace 1043
sarch_get_F 608368
sarch_get_MI 608369
sarch_get_archp 1555443
sarch_get_cyc 486508
sarch_get_lambda 608367
scalar_logembed 15239
set_sign_mod_divisor 753492
setsigns_init 391757
split_U 257565
sprk_get_AgL2 0
sprk_get_L2 1213680
sprk_get_U2 1205101
sprk_get_cyc 3984315
sprk_get_expo 1969735
sprk_get_ff 2543693
sprk_get_gen 335956
sprk_get_gnf 318207
sprk_get_k 63
sprk_get_pr 2604083
sprk_get_prk 4917910
sprk_is_prime 2543690
sprk_log_gen_pr 2037
sprk_log_gen_pr2 105867
sprk_log_prk1 275855
sprk_log_prk1_2 404404
sprk_to_bid 63
sprkinit 426108
tablemul 0
tablemul_ei 4130
tablemul_ei_ej 5739
tablemulvec 1890
tablesqr 10366
to_RgX 119
vec01_to_indices 1094452
veclog_prk 497
vecsmall01_to_indices 2765
zidealij 237237
zidealstar 0
zidealstarinit 0
zidealstarinitgen 0
zkC_multable_mul 194407
zkVchinese1 237472
zk_ei_mul 23909545
zk_embed 74787
zk_inv 305226
zk_modHNF 7820716
zk_multable 10786926
zk_scalar_or_multable 4996325
zkadd 0
zkadd1 255422
zkchinese 0
zkchinese1 255495
zkchinese1init2 259
zkchineseinit 237224
zkmul 255437
zkmultable_capZ 1248847
zkmultable_inv 1554072
zksub 0
zksub1 255497
zlog 381578

Generated by: LCOV version 1.16