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 - base2.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20277-2bd9113) Lines: 1983 2303 86.1 %
Date: 2017-02-21 05:49:51 Functions: 158 169 93.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Decomp 23779
Flx_checkdeflate 101351
Flx_radical 101351
FpX_radical 3102
Fp_basis 46011
FqM_to_nfM 1148
FqV_to_nfV 0
FqX_non_root 21
FqX_to_nfX 4088
Fq_to_nf 1174292
QpXV_denom 46760
QpX_denom 334166
QpX_remove_denom 142212
RgV_nffix 28
RgX_nffix 65563
Rg_nffix 191694
Rg_to_ff 4335785
ZX_Dedekind 97006
ZX_compositum_disjoint 385
ZX_rescale_inv 1393
Zlx_gcd 18086
Zlx_sylvester_echelon 716983
ZpM_hnfmodid 32739
ZpX_disc_val 28056
ZpX_gcd 23779
ZpX_monic_factor 1225
ZpX_reduced_resultant 79896
ZpX_reduced_resultant_fast 54350
ZpX_resultant_val 600311
ZpX_resultant_val_i 627114
ZpX_sylvester_echelon 13806
_msqr 3234
_sqr 7777
allbase2 0
anti_uniformizer 386645
checkmodpr 182
checkprid 2161762
checkprid_i 2825880
companion 0
compmod 20321
compositum 35
compositum2 231
compositum_fix 959
dbasis 44121
diag_denom 6601
dim1proj 393526
ei_msqr_mod 71389
errprime 0
expo_is_squarefree 1015
fact_from_factors 70
ffdegree 77
fill 1904
fnz 38654
gen_if_principal 35
get_LV 13505
get_coprimes 70
get_g 39081
get_gamma 38647
get_maxord 9289
get_modpr 3241
get_norm 47612
get_nu 60298
get_order 70
get_partial_order_as_pols 46760
get_powers 21080
get_pr 48225
get_prid 658679
get_proj_modT 13475
getprime 47054
ideal_is1 3353
idealprimedec 90502
idealprimedec_kummer 672270
idealprimedec_limit_f 554745
idealprimedec_limit_norm 313474
indexpartial 2332
init_m 654661
init_norm 13505
is_pseudo_matrix 63
is_uniformizer 47612
lift_to_zk 1932
loop 18774
loop_init 24843
manage_cache 65702
matinv 0
maxord 97006
maxord2 0
maxord_i 33600
minval 1421
mk_pr 718009
modpr_TAU 656418
modpr_genFq 3150
modprinit 405991
mtran 0
mtran_long 0
mul_intersect 115451
mycaract 65702
newtoncharpoly 64764
newtonsums 65702
nextk 14
nfM_to_FqM 665
nfV_to_FqV 4008
nfXQ_mul 6874
nfX_mul 6874
nfX_rem 6874
nfX_to_FqX 12864
nf_pV_to_prV 364
nf_to_Fq 4335365
nf_to_Fq_init 656187
nfbasis 56
nfbasis_gp 56
nfcompositum 525
nfdisc 3129
nfidealdet1 63
nfmaxord 6090
nfmaxord_check_args 9219
nfmodpr 238
nfmodprinit 49
nfmodprlift 56
nfreducemodpr 182
nfsplitting 119
nilord 19306
ok_modpr 550711
p_is_prime 1001
pol_min 20534
polcompositum0 385
poldiscfactors 21
poldiscfactors_i 5054
polsymmodp 38948
pow_ei_mod_p 84930
pradical 13505
primedec_aux 554745
primedec_end 13505
redelt 7259
redelt_i 11172
rnfallbase 1169
rnfbasis 21
rnfdedekind 77
rnfdedekind_i 1687
rnfdet 21
rnfdiscf 7
rnfeltid_powmod 2345
rnfhnfbasis 7
rnfisfree 7
rnfisfree_aux 7
rnfjoinmodules 1610
rnfjoinmodules_i 952
rnfmaxord 1610
rnfpseudobasis 49
rnfsimplifybasis 0
rnfsteinitz 28
rowred 0
rowred_long 0
safe_Z_pvalrem 161
set_disc 9219
split_char 51107
sqr_mod 144359
testb2 7749
testc2 1547
to_ff_init 670004
triv_order 791
uniformizer 37906
update_den 530145
update_fact 413
update_phi 14833
vstar 48713
zk_to_Fq 520399
zk_to_Fq_init 13817
zkmodprinit 5522
zx_z_div 93898

Generated by: LCOV version 1.11