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 30622-caa25a75db) Lines: 2050 2158 95.0 %
Date: 2026-01-22 09:18:00 Functions: 226 237 95.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Ideallist 10698
Idealstar 938
Idealstarmod 243006
Idealstarmod_i 243279
Idealstarprk 273
Q_mod_bid 14
RgC_to_nfC 112699
RgM_RgX_mul 1365
RgM_to_nfM 6771
RgX_to_nfX 30836
ZC_add1 183013
ZC_cxlog 1722911
ZC_nfval 19749111
ZC_nfvalrem 24197854
ZC_prdvd 1232583
ZC_sub1 63069
ZMV_ZCV_mul 1870906
ZM_ZMV_mul 518
ZM_ZX_mul 9919121
ZV_snf_gcd 2217338
_mul 387339
_mulii 1065368330
_nf_add 3690602
_nf_inv 13529
_nf_mul 4308468
_nf_neg 197247
_nf_red 753389
_nf_s 3331
_sqr 1030287
algtobasis 950003
apply_U 2664872
basistoalg 225996
bid_grp 243588
check_mod_factored 243922
checkarchp 115852
chineseinit_i 6687
chk_ind 37120
concat_join 671841
cxlog_1 22187
cxlog_m1 531
ei_multable 35397
eltmul 334606
eltpow 476485
famatQ_to_famatZ 35
famat_abs 35
famat_cba 35
famat_cxlog 223627
famat_logembed 1309
famat_nfvalrem 422741
famat_norm 35
famat_sign 35
famat_strip2 243914
famat_to_nf_modideal_coprime 2834273
famat_zlog 1417587
famat_zlog_pr 2121093
famat_zlog_pr_coprime 196
get_C 705594
get_nf_field 53499
get_tab 38868101
gideallist 63
gpnfvalrem 15015
idealHNF_norm_pval 63
idealchinese 12779
idealfactorback 88870
ideallist 9987
ideallist0 10663
ideallistarch 14
ideallog 13769
ideallog_i 1514193
ideallog_units 84
ideallog_units0 214587
ideallogmod 1520871
idealprincipalunits 196
idealprincipalunits_i 174027
idealstar0 0
idealstarmod 112
idmul 72008
idmulred 56
idpow 87971
idpowred 414
indices_to_vec01 125439
init_zlog 359526
init_zlog_mod 2088304
is_chineseinit 13274
is_famat 53587037
isprfact 6218
join_arch 42
join_archunit 14
join_bid 469
join_bid_arch 42
join_ideal 240355
join_idealinit 469
join_unit 448
log_gen_arch 102585
log_gen_pr 440996
log_prk 3027101
log_prk1 1616827
log_prk_init 84256
log_prk_units 518
log_prk_units_init 49
low_prec 4581063
matalgtobasis 30138
matbasistoalg 3213
mulbytab 7280
multable 2051
nfC_multable_mul 31257
nfC_nf_mul 113793
nfM_det 14
nfM_inv 3317
nfM_ker 0
nfM_mul 2926
nfM_nfC_mul 47242
nfV_cxlog 97
nf_cxlog 1350961
nf_to_scalar_or_alg 7006734
nf_to_scalar_or_basis 122113937
nf_to_scalar_or_polmod 2133859
nfadd 14099128
nfarchstar 622367
nfchecksigns 14506
nfchecksigns_i 102646
nfdiv 39660
nfdiveuc 259
nfdivrem 259
nfeltembed 730
nfeltembed_i 730
nfeltsign 126175
nfembed 0
nfembed_i 2122
nffactorback 272148
nfinv 188232
nfinvmodideal 173
nfispower 11155
nfissquare 1218
nflogembed 102843
nfmod 259
nfmul 24339149
nfmuli 4667664
nfmuli_ZC 8112062
nfmulmodideal 7577056
nfmulpowmodideal 4975571
nfnorm 211684
nfpolsturm 2163
nfpow 983174
nfpow_u 366328
nfpowmodideal 6268091
nfsetsigns 831122
nfsign 48470
nfsign_arch 1242396
nfsqr 6029435
nfsqri 4456662
nfsqri_ZC 7083901
nfsqrmodideal 2654670
nfsub 1427823
nftrace 20663
nfval 5566781
nfvalrem 3613789
num_positive 1139849
oksigns 32444
order_update 694567
parse_embed 129061
pl_convert 1220
pl_normalize 2996
pol_to_scalar_or_basis 3358817
polmod_nffix 181329
polmod_nffix2 181420
poltobasis 9333385
powp 973309
pr_basis_perm 68599
pr_equal 357
pr_init 6218
principal_units 174027
principal_units_relations 63449
rnfalgtobasis 1428
rnfbasistoalg 61264
rnfeltnorm 462
rnfelttrace 1050
sarch_get_F 705594
sarch_get_MI 705594
sarch_get_archp 1794314
sarch_get_cyc 458946
sarch_get_lambda 705594
scalar_logembed 15795
set_sign_mod_divisor 861766
setsigns_init 463824
split_U 242529
sprk_get_AgL2 0
sprk_get_L2 1497352
sprk_get_U2 1476056
sprk_get_cyc 4401845
sprk_get_expo 2121289
sprk_get_ff 2953647
sprk_get_gen 331069
sprk_get_gnf 318208
sprk_get_k 63
sprk_get_pr 2775129
sprk_get_prk 5495584
sprk_is_prime 2953713
sprk_log_gen_pr 2037
sprk_log_gen_pr2 136354
sprk_log_prk1 262683
sprk_log_prk1_2 420426
sprk_to_bid 63
sprkinit 415254
tablemul 0
tablemul_ei 4158
tablemul_ei_ej 5746
tablemulvec 2051
tablesqr 10092
to_RgX 119
vec01_to_indices 1299210
veclog_prk 497
vecsmall01_to_indices 2996
zidealij 247554
zidealstar 0
zidealstarinit 0
zidealstarinitgen 0
zkC_multable_mul 193670
zkVchinese1 241487
zk_ei_mul 23626932
zk_embed 100803
zk_inv 298512
zk_modHNF 7815809
zk_multable 10875883
zk_scalar_or_multable 5085428
zkadd 0
zkadd1 270576
zkchinese 0
zkchinese1 270577
zkchinese1init2 259
zkchineseinit 241225
zkmul 270576
zkmultable_capZ 1310795
zkmultable_inv 1609307
zksub 0
zksub1 270577
zlog 453312

Generated by: LCOV version 1.16