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.16.1 lcov report (development 28697-a4113027d0) Lines: 2038 2174 93.7 %
Date: 2023-09-28 07:47:45 Functions: 228 241 94.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
idealstar0 0
nfM_ker 0
nfembed 0
oksigns 0
oksigns2 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
nfissquare 56
gideallist 63
idealHNF_norm_pval 63
sprk_get_k 63
sprk_to_bid 63
to_RgX 70
ideallog_units 84
idealstarmod 98
nfV_cxlog 98
idealprincipalunits 140
nfinvmodideal 175
famat_zlog_pr_coprime 196
rnfeltnorm 238
nfdiveuc 259
nfdivrem 259
nfmod 259
zkchinese1init2 259
Idealstarprk 273
nfeltembed 294
nfeltembed_i 294
pr_equal 294
idpowred 413
join_unit 448
join_bid 469
join_idealinit 469
veclog_prk 497
cxlog_m1 504
ZM_ZMV_mul 518
log_prk_units 518
pl_convert 553
nfembed_i 658
rnfelttrace 791
Idealstar 952
nfchecksigns 1085
rnfalgtobasis 1204
num_positive 1234
famat_logembed 1309
RgM_RgX_mul 1337
nfpolsturm 1526
sprk_log_gen_pr 2037
matbasistoalg 2149
pl_normalize 2205
vecsmall01_to_indices 2205
multable 2562
tablemulvec 2562
isprfact 3407
pr_init 3407
chineseinit_i 3862
chk_ind 6573
idealchinese 6688
nfispower 8103
is_chineseinit 8622
nfM_mul 9994
nfM_inv 10414
_nf_s 10428
ideallist 10563
RgM_to_nfM 10631
mulbytab 10744
ideallist0 11298
Ideallist 11333
tablemul_ei 11648
ideallog 13755
gpnfvalrem 14952
scalar_logembed 16807
tablemul_ei_ej 21279
nftrace 21383
cxlog_1 23677
RgX_to_nfX 29003
matalgtobasis 29936
nfdiv 36286
ei_multable 38703
pr_basis_perm 43596
nfsign 43911
rnfbasistoalg 46200
tablesqr 49356
_nf_inv 51628
nfC_multable_mul 55386
principal_units_relations 56560
ZC_sub1 70397
idmul 70996
setsigns_init 83343
nfinv 83532
idealfactorback 85169
log_gen_arch 85871
idpow 86844
RgC_to_nfC 89856
log_prk_init 90060
nfnorm 91665
nfeltsign 93940
parse_embed 95753
nfchecksigns_i 96676
nflogembed 99183
sprk_log_gen_pr2 105510
coltoalg 105657
checkarchp 134034
indices_to_vec01 136674
polmod_nffix 138138
polmod_nffix2 138229
basistoalg 156782
zk_inv 161935
principal_units 168936
idealprincipalunits_i 168941
ZC_add1 169582
get_C 172649
sarch_get_lambda 172649
sarch_get_F 172650
sarch_get_MI 172650
nfC_nf_mul 195381
_mul 198653
nfM_nfC_mul 201259
zkC_multable_mul 207433
check_nfelt 218399
nfpow_u 221041
get_nf_field 221681
famat_cxlog 223140
ideallog_units0 226752
zidealij 236586
zkchineseinit 237055
zkVchinese1 237305
zkadd1 255206
zkmul 255219
zksub1 255267
zkchinese1 255269
split_U 257151
Idealstarmod 257602
Idealstarmod_i 257851
bid_grp 258181
check_mod_factored 258508
famat_strip2 258531
nfarchstar 259190
nffactorback 265333
join_ideal 268585
sprk_log_prk1 272768
nfsetsigns 286429
set_sign_mod_divisor 317912
sprk_get_gnf 319144
eltmul 320894
sprk_get_gen 335563
init_zlog 379610
zlog 380552
sprk_log_prk1_2 400900
log_gen_pr 413118
famat_nfvalrem 420658
sprkinit 425550
eltpow 458189
sarch_get_cyc 485752
order_update 542566
sarch_get_archp 700459
_sqr 716447
_nf_neg 742422
concat_join 759136
eval_sign 796249
nfpow 819164
eval_sign_embed 910817
algtobasis 913829
zk_embed 929841
powp 939462
nfsign_arch 1010827
vec01_to_indices 1057313
sprk_get_U2 1199714
sprk_get_L2 1208264
ZC_prdvd 1243201
zkmultable_capZ 1255167
nf_cxlog 1307739
log_prk1 1325604
nfsub 1329039
famat_zlog 1370825
ideallog_i 1379680
ideallogmod 1386358
zkmultable_inv 1417102
ZC_cxlog 1656891
ZMV_ZCV_mul 1751315
famat_zlog_pr 1962046
sprk_get_expo 1962243
init_zlog_mod 1986034
ZV_snf_gcd 2140604
apply_U 2144021
sprk_get_ff 2535103
sprk_is_prime 2535141
sprk_get_pr 2596153
log_prk 2608886
famat_to_nf_modideal_coprime 2613567
nfsqrmodideal 3020176
_nf_red 3047938
nfval 3281727
nf_to_scalar_or_alg 3468768
nfvalrem 3630783
sprk_get_cyc 3970320
nfmuli 4122062
zk_scalar_or_multable 4229705
pol_to_scalar_or_basis 4313296
low_prec 4374242
nfsqri 4562652
nfmulpowmodideal 4596075
nfmuli_ZC 4642401
nfsqri_ZC 4825199
sprk_get_prk 4898300
nfpowmodideal 5727796
nfsqr 6117594
nfmulmodideal 7528277
zk_modHNF 8193374
poltobasis 8914270
ZM_ZX_mul 9509351
zk_multable 9660200
_nf_add 12610275
_nf_mul 15117763
nfadd 19121196
ZC_nfval 21152568
zk_ei_mul 21819403
ZC_nfvalrem 25308921
nfmul 25980094
get_tab 31356624
is_famat 50927329
nf_to_scalar_or_basis 122761765
_mulii 1035880238

Generated by: LCOV version 1.14