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 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.10.0 lcov report (development 20459-9710128) Lines: 1579 1683 93.8 %
Date: 2017-04-27 05:33:52 Functions: 177 187 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Ideallist 300
Idealstar 5298
Idealstar_i 5526
Idealstarprk 228
Q_mod_bid 6
RgC_to_nfC 31380
RgM_RgX_mul 1140
RgM_to_nfM 2694
RgX_to_nfX 2148
ZC_add1 1728
ZC_nfval 4066362
ZC_nfvalrem 4255242
ZC_prdvd 165552
ZC_sub1 1320
ZMV_ZCV_mul 182052
ZM_ZMV_mul 444
ZM_ZX_mul 1510528
_mul 21798
_mulii 288324993
_nf_add 1284570
_nf_inv 4776
_nf_mul 1515684
_nf_neg 72270
_nf_red 283782
_nf_s 1074
_sqr 79032
algtobasis 65364
apply_U 236982
basistoalg 65214
bid_grp 5778
check_nfelt 120144
chineseinit_i 1788
chk_ind 2160
coltoalg 63246
concat_join 37212
ei_multable 750
eval_sign 261150
eval_sign_embed 319584
famat_norm 6
famat_strip2 5508
famat_to_nf_modideal_coprime 115182
famat_zlog 86448
famat_zlog_pr 83292
get_C 38562
get_nf_field 19992
get_tab 6554399
gpnfvalrem 126
idealchinese 3036
ideallist 0
ideallist0 300
ideallistarch 12
ideallog 181368
ideallog_i 183408
ideallog_sgn 179496
idealprincipalunits 96
idealprincipalunits_i 7284
idealstar0 54
indices_to_vec01 4122
init_zlog 185874
is_chineseinit 4122
isprfact 1734
join_arch 48
join_archunit 24
join_bid 408
join_bid_arch 48
join_ideal 22476
join_idealinit 408
join_unit 390
log_gen_arch 5340
log_gen_pr 8868
log_prk1 147972
matalgtobasis 2124
matbasistoalg 720
mulbytab 2784
multable 618
nfC_multable_mul 20340
nfC_nf_mul 62940
nfM_det 12
nfM_inv 1062
nfM_mul 984
nfM_nfC_mul 17934
nf_log 217596
nf_to_scalar_or_alg 128010
nf_to_scalar_or_basis 13553310
nfadd 1377924
nfarchstar 6726
nfchecksigns 438
nfchecksigns_i 51114
nfdiv 12066
nfdiveuc 222
nfdivrem 222
nfeltembed 468
nfeltsign 660
nfembed 1362
nfembed_i 504
nfinv 9864
nfinvmodideal 126
nfmod 222
nfmul 3080010
nfmuli 510210
nfmulmodideal 538968
nfmulpowmodideal 297276
nfnorm 17484
nfpow 76650
nfpow_u 26694
nfpowmodideal 334050
nfsetsigns 59418
nfsign 474
nfsign_arch 270510
nfsqr 495684
nfsqri 472866
nfsqrmodideal 230376
nfsub 63150
nftrace 20196
nfval 1125372
nfvalrem 55392
num_positive 1338
oksigns 0
oksigns2 0
pl_convert 138
pl_normalize 1086
polmod_nffix 52026
polmod_nffix2 52104
poltobasis 1397676
powp 17148
pr_basis_perm 2124
pr_equal 24
pr_init 1734
principal_units 7284
principal_units_relations 3276
rnfalgtobasis 1008
rnfbasistoalg 30600
rnfeltnorm 198
rnfelttrace 486
sarch_get_F 38562
sarch_get_MI 38562
sarch_get_archp 176196
sarch_get_cyc 10308
sarch_get_lambda 38562
set_sign_mod_divisor 65802
setsigns_init 4920
split_U 4872
sprk_get_L2 121008
sprk_get_U2 118404
sprk_get_cyc 211134
sprk_get_expo 83292
sprk_get_ff 217596
sprk_get_gen 5052
sprk_get_pr 87804
sprk_get_prk 201696
sprk_is_prime 217596
sprkinit 10248
tablemul 0
tablemul_ei 2772
tablemul_ei_ej 2010
tablemulvec 618
tablesqr 4656
vec01_to_indices 275688
vecmodii 535758
vecsmall01_to_indices 1086
vzlog_pr 324
zidealij 11118
zidealstar 0
zidealstarinit 0
zidealstarinitgen 0
zkC_multable_mul 90618
zkVchinese1 2106
zk_ei_mul 5565803
zk_embed 329262
zk_inv 14730
zk_modHNF 480942
zk_multable 2268637
zk_scalar_or_multable 1269640
zkadd 0
zkadd1 2736
zkchinese 0
zkchinese1 2736
zkchinese1init2 222
zkchineseinit 1884
zkmul 2736
zkmultable_capZ 274014
zkmultable_inv 288744
zksub 0
zksub1 2736
zlog 130746
zlog_pr 218484
zlog_pr_init 5196

Generated by: LCOV version 1.11