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 20443-183d202) Lines: 1579 1683 93.8 %
Date: 2017-03-27 05:17:48 Functions: 177 187 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Ideallist 250
Idealstar 4415
Idealstar_i 4605
Idealstarprk 190
Q_mod_bid 5
RgC_to_nfC 26150
RgM_RgX_mul 950
RgM_to_nfM 2245
RgX_to_nfX 1790
ZC_add1 1440
ZC_nfval 3388635
ZC_nfvalrem 3546035
ZC_prdvd 137960
ZC_sub1 1100
ZMV_ZCV_mul 151710
ZM_ZMV_mul 370
ZM_ZX_mul 1258510
_mul 18165
_mulii 240270678
_nf_add 1070475
_nf_inv 3980
_nf_mul 1263070
_nf_neg 60225
_nf_red 236485
_nf_s 895
_sqr 65860
algtobasis 54470
apply_U 197485
basistoalg 54345
bid_grp 4815
check_nfelt 100120
chineseinit_i 1490
chk_ind 1800
coltoalg 52705
concat_join 31010
ei_multable 625
eval_sign 217625
eval_sign_embed 266320
famat_norm 5
famat_strip2 4590
famat_to_nf_modideal_coprime 95985
famat_zlog 72040
famat_zlog_pr 69410
get_C 32135
get_nf_field 16660
get_tab 5461974
gpnfvalrem 105
idealchinese 2530
ideallist 0
ideallist0 250
ideallistarch 10
ideallog 151140
ideallog_i 152840
ideallog_sgn 149580
idealprincipalunits 80
idealprincipalunits_i 6070
idealstar0 45
indices_to_vec01 3435
init_zlog 154895
is_chineseinit 3435
isprfact 1445
join_arch 40
join_archunit 20
join_bid 340
join_bid_arch 40
join_ideal 18730
join_idealinit 340
join_unit 325
log_gen_arch 4450
log_gen_pr 7390
log_prk1 123310
matalgtobasis 1770
matbasistoalg 600
mulbytab 2320
multable 515
nfC_multable_mul 16950
nfC_nf_mul 52450
nfM_det 10
nfM_inv 885
nfM_mul 820
nfM_nfC_mul 14945
nf_log 181330
nf_to_scalar_or_alg 106675
nf_to_scalar_or_basis 11294395
nfadd 1148270
nfarchstar 5605
nfchecksigns 365
nfchecksigns_i 42595
nfdiv 10055
nfdiveuc 185
nfdivrem 185
nfeltembed 390
nfeltsign 550
nfembed 1135
nfembed_i 420
nfinv 8220
nfinvmodideal 105
nfmod 185
nfmul 2566675
nfmuli 425175
nfmulmodideal 449140
nfmulpowmodideal 247730
nfnorm 14570
nfpow 63875
nfpow_u 22245
nfpowmodideal 278375
nfsetsigns 49515
nfsign 395
nfsign_arch 225425
nfsqr 413070
nfsqri 394055
nfsqrmodideal 191980
nfsub 52625
nftrace 16830
nfval 937810
nfvalrem 46160
num_positive 1115
oksigns 0
oksigns2 0
pl_convert 115
pl_normalize 905
polmod_nffix 43355
polmod_nffix2 43420
poltobasis 1164715
powp 14290
pr_basis_perm 1770
pr_equal 20
pr_init 1445
principal_units 6070
principal_units_relations 2730
rnfalgtobasis 840
rnfbasistoalg 25500
rnfeltnorm 165
rnfelttrace 405
sarch_get_F 32135
sarch_get_MI 32135
sarch_get_archp 146830
sarch_get_cyc 8590
sarch_get_lambda 32135
set_sign_mod_divisor 54835
setsigns_init 4100
split_U 4060
sprk_get_L2 100840
sprk_get_U2 98670
sprk_get_cyc 175945
sprk_get_expo 69410
sprk_get_ff 181330
sprk_get_gen 4210
sprk_get_pr 73170
sprk_get_prk 168080
sprk_is_prime 181330
sprkinit 8540
tablemul 0
tablemul_ei 2310
tablemul_ei_ej 1675
tablemulvec 515
tablesqr 3880
vec01_to_indices 229740
vecmodii 446465
vecsmall01_to_indices 905
vzlog_pr 270
zidealij 9265
zidealstar 0
zidealstarinit 0
zidealstarinitgen 0
zkC_multable_mul 75515
zkVchinese1 1755
zk_ei_mul 4638144
zk_embed 274385
zk_inv 12275
zk_modHNF 400785
zk_multable 1890516
zk_scalar_or_multable 1058026
zkadd 0
zkadd1 2280
zkchinese 0
zkchinese1 2280
zkchinese1init2 185
zkchineseinit 1570
zkmul 2280
zkmultable_capZ 228345
zkmultable_inv 240620
zksub 0
zksub1 2280
zlog 108955
zlog_pr 182070
zlog_pr_init 4330

Generated by: LCOV version 1.11