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 20277-2bd9113) Lines: 1557 1661 93.7 %
Date: 2017-02-21 05:49:51 Functions: 176 186 94.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Ideallist 350
Idealstar 6524
Idealstar_i 6447
Idealstarprk 266
Q_mod_bid 7
RgC_to_nfC 36792
RgM_to_nfM 3143
RgX_to_nfX 2444
ZC_add1 2688
ZC_nfval 4814198
ZC_nfvalrem 5037852
ZC_prdvd 210770
ZC_sub1 1540
ZMV_ZCV_mul 226162
ZM_ZMV_mul 518
_mul 25595
_mulii 356005555
_nf_add 1498665
_nf_inv 5572
_nf_mul 1768298
_nf_neg 84315
_nf_red 331079
_nf_s 1253
_sqr 93130
algtobasis 94658
apply_U 277128
basistoalg 91756
bid_grp 6741
check_nfelt 144045
chineseinit_i 2079
chk_ind 1855
coltoalg 88557
concat_join 43414
ei_multable 490
eval_sign 304857
eval_sign_embed 373030
famat_norm 7
famat_strip2 6426
famat_to_nf_modideal_coprime 141362
famat_zlog 107839
famat_zlog_pr 104157
get_C 44944
get_nf_field 23324
get_tab 8642409
gpnfvalrem 147
idealchinese 3514
ideallist 0
ideallist0 350
ideallistarch 14
ideallog 225399
ideallog_i 227744
ideallog_sgn 223180
idealprincipalunits 112
idealprincipalunits_i 8498
idealstar0 406
indices_to_vec01 4809
init_zlog 230621
is_chineseinit 4788
isprfact 2016
join_arch 56
join_archunit 28
join_bid 476
join_bid_arch 56
join_ideal 26222
join_idealinit 476
join_unit 455
log_gen_arch 6230
log_gen_pr 10346
log_prk1 173283
matalgtobasis 2457
matbasistoalg 840
mulbytab 3248
mulmat_pol 1778577
multable 721
nfC_multable_mul 24484
nfC_nf_mul 73675
nfM_det 14
nfM_inv 1239
nfM_mul 1148
nfM_nfC_mul 20923
nf_log 267729
nf_to_scalar_or_alg 119440
nf_to_scalar_or_basis 16270719
nfadd 1607557
nfarchstar 7802
nfchecksigns 511
nfchecksigns_i 59633
nfdiv 19831
nfdiveuc 259
nfdivrem 259
nfeltembed 161
nfeltsign 770
nfembed 1589
nfembed_i 168
nfinv 60277
nfinvmodideal 126
nfmod 259
nfmul 3651217
nfmuli 604756
nfmulmodideal 636156
nfmulpowmodideal 353668
nfnorm 20394
nfpow 115562
nfpow_u 31990
nfpowmodideal 396571
nfsetsigns 69276
nfsign 539
nfsign_arch 315980
nfsqr 583166
nfsqri 582402
nfsqrmodideal 269583
nfsub 70980
nftrace 42
nfval 1312591
nfvalrem 15351
num_positive 1434
oksigns 0
oksigns2 0
pl_convert 161
pl_normalize 1267
polmod_nffix 60697
polmod_nffix2 60788
poltobasis 1646136
powp 4333
pr_basis_perm 2478
pr_equal 28
pr_init 2016
principal_units 8498
principal_units_relations 3822
rnfalgtobasis 1176
rnfbasistoalg 35700
rnfeltnorm 231
rnfelttrace 567
sarch_get_F 44944
sarch_get_MI 44944
sarch_get_archp 205528
sarch_get_cyc 12026
sarch_get_lambda 44944
set_sign_mod_divisor 76780
setsigns_init 5695
split_U 5684
sprk_get_L2 141825
sprk_get_U2 138787
sprk_get_cyc 253955
sprk_get_expo 104157
sprk_get_ff 267729
sprk_get_gen 5894
sprk_get_pr 109421
sprk_get_prk 242944
sprk_is_prime 267729
sprkinit 11956
tablemul 0
tablemul_ei 3234
tablemul_ei_ej 2345
tablemulvec 721
tablesqr 5432
vec01_to_indices 322021
vecmodii 646761
vecsmall01_to_indices 1267
vzlog_pr 378
zidealij 12971
zidealstar 0
zidealstarinit 0
zidealstarinitgen 0
zkC_multable_mul 111102
zkVchinese1 2457
zk_ei_mul 7449196
zk_embed 384321
zk_inv 27314
zk_modHNF 561875
zk_multable 2990366
zk_scalar_or_multable 1920710
zkadd 0
zkadd1 3192
zkchinese 0
zkchinese1 3192
zkchinese1init2 259
zkchineseinit 2198
zkmul 3192
zkmultable_capZ 330920
zkmultable_inv 358234
zksub 0
zksub1 3192
zlog 159795
zlog_pr 268765
zlog_pr_init 6062

Generated by: LCOV version 1.11