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

Generated by: LCOV version 1.16