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.1 lcov report (development 22726-9e20c6a88) Lines: 2117 2238 94.6 %
Date: 2018-06-23 05:36:28 Functions: 167 171 97.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Decomp 24143
Flx_checkdeflate 106788
Flx_radical 106788
FpX_radical 3187
Fp_basis 50909
FqM_to_nfM 8050
FqV_to_nfV 0
FqX_non_root 21
FqX_to_nfX 8323
Fq_to_nf 1331407
QXQV_to_FpM 126
QpXV_denom 47796
QpX_denom 342237
QpX_remove_denom 146524
RgV_nffix 28
RgX_nffix 187496
Rg_nffix 464141
Rg_to_ff 5470994
ZX_Dedekind 102326
ZX_compositum_disjoint 385
ZX_rescale_inv 1456
Zlx_gcd 18416
Zlx_sylvester_echelon 797225
ZpM_hnfmodid 33656
ZpX_disc_val 28770
ZpX_gcd 24143
ZpX_monic_factor 462
ZpX_monic_factor_squarefree 959
ZpX_primedec 0
ZpX_reduced_resultant 81578
ZpX_reduced_resultant_fast 55202
ZpX_resultant_val 678435
ZpX_resultant_val_i 706204
ZpX_round4 714
ZpX_sylvester_echelon 14700
_msqr 10213
_sqr 57029
anti_uniformizer 354340
checkmodpr 182
checkprid 2257999
checkprid_i 3037680
compmod 20965
compositum 42
compositum2 231
compositum_fix 1365
dbasis 45339
diag_denom 7553
dim1proj 354396
ei_msqr_mod 85727
errprime 0
expo_is_squarefree 763
fact_from_factors 168
ffdegree 357
fill 10276
fnz 39382
gen_if_principal 35
get_LV 16358
get_coprimes 77
get_d 1540
get_g 40278
get_gamma 39851
get_maxord 17171
get_modpr 3073
get_norm 58782
get_nu 58562
get_order 70
get_partial_order_as_pols 47796
get_powers 25416
get_pr 53739
get_prid 753599
getprime 48657
ideal_is1 21567
idealprimedec 143773
idealprimedec_degrees 203
idealprimedec_galois 3990
idealprimedec_kummer 778471
idealprimedec_limit_f 605160
idealprimedec_limit_norm 192920
indexpartial 1246
init_m 733637
init_norm 16358
is_pseudo_matrix 63
is_uniformizer 58782
lastel 7
lift_to_zk 7238
loop 19334
manage_cache 67907
maxord 102326
maxord_i 34370
minval 12131
mk_pr 833532
modpr_TAU 749266
modpr_genFq 4200
modprinit 367658
mul_intersect 126203
mycaract 67907
newtoncharpoly 66899
newtonsums 67907
nextk 7
nfM_to_FqM 4235
nfV_to_FqV 3812
nfXQ_mul 48216
nfX_mul 51394
nfX_rem 48216
nfX_sub 3178
nfX_to_FqX 9142
nf_pV_to_prV 1071
nf_to_Fq 5470567
nf_to_Fq_init 744555
nfbasis 84
nfbasis_gp 56
nfcompositum 749
nfdisc 3157
nfidealdet1 63
nfmaxord 13937
nfmaxord_check_args 17094
nfmodpr 252
nfmodprinit 63
nfmodprlift 70
nfreducemodpr 182
nfsplitting 140
nfsplitting_composite 133
ok_modpr 1304296
p_is_prime 1057
pol_min 22756
polcompositum0 490
poldiscfactors 28
poldiscfactors_i 12656
pow_ei_mod_p 111138
pr_factorback 2940
pr_factorback_scal 2940
pradical 16358
primedec_aux 609353
primedec_end 16358
progress 25683
redelt 1631
redelt_i 5628
rnfallbase 1512
rnfbasis 21
rnfdedekind 84
rnfdedekind_i 3206
rnfdet 14
rnfdisc_factored 385
rnfdiscf 28
rnfeltid_powmod 16989
rnfhnfbasis 7
rnfisfree 7
rnfisfree_aux 7
rnfjoinmodules 1799
rnfjoinmodules_i 5138
rnfmaxord 3122
rnfpseudobasis 77
rnfsimplifybasis 0
rnfsteinitz 28
safe_Z_pvalrem 784
set_disc 17094
split_char 52647
sqr_mod 180342
testb2 7952
testc2 1631
to_ff_init 751247
triv_order 812
uniformizer 41929
update_den 541457
update_fact 539
update_phi 15491
vstar 50386
zk_to_Fq 1162806
zk_to_Fq_init 6692
zkmodprinit 6612
zx_z_div 99139

Generated by: LCOV version 1.13