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-bordeaux1.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.8.0 lcov report (development 17404-c89e0b8) Lines: 1886 2194 86.0 %
Date: 2015-01-30 Functions: 150 160 93.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1035 1416 73.1 %

Function Name Sort by function name Hit count Sort by hit count
Decomp 23429
Flx_checkdeflate 100245
Flx_radical 100245
FpX_radical 3058
Fp_basis 38553
FqM_to_nfM 924
FqV_to_nfV 7
FqX_non_root 21
FqX_to_nfX 2982
Fq_to_nf 36470
QpXV_denom 46550
QpX_denom 325297
QpX_remove_denom 132132
RgV_nffix 28
RgX_nffix 50449
Rg_nffix 150255
Rg_to_ff 942228
ZX_Dedekind 95893
ZX_compositum_disjoint 385
ZX_rescale_inv 1302
Zlx_gcd 17892
Zlx_sylvester_echelon 187093
ZpM_hnfmodid 32648
ZpX_disc_val 27489
ZpX_gcd 23429
ZpX_reduced_resultant 79044
ZpX_reduced_resultant_fast 53382
ZpX_resultant_val 71064
ZpX_resultant_val_i 97643
ZpX_sylvester_echelon 13023
_msqr 2471
_sqr 7868
allbase2 0
allbase_from_maxord 4410
anti_uniformizer2 320885
checkmodpr 434
checkprid 1078798
companion 0
compmod 20188
compositum 35
compositum2 231
compositum_fix 721
dbasis 43862
diag_denom 6412
dim1proj 240955
disc_from_maxord 3101
errprime 0
fact_from_factors 49
ffdegree 434
fill 1736
fnz 39291
gen_if_principal 35
get_LV 13365
get_coprimes 77
get_d 553
get_g 38766
get_gamma 38451
get_maxord 7518
get_modpr 2492
get_norm 390172
get_nu 59969
get_order 70
get_partial_order_as_pols 46550
get_powers 17472
get_pr 40233
get_prid 550060
get_proj_modT 99317
getprime 46382
ideal_is1 3017
idealprimedec 111836
idealprimedec_limit_f 342706
idealprimedec_limit_norm 154714
indexpartial 2198
init_m 124446
init_norm 13365
is_prid 1631392
is_pseudo_matrix 63
is_uniformizer 390172
kill_cache 20181
lift_to_zk 8218
loop 18683
loop_init 24500
manage_cache 56168
matinv 0
maxord 95893
maxord2 0
maxord_i 33040
mk_pr 481466
modpr_TAU 323062
modpr_genFq 399
modprinit 342029
mtran 0
mtran_long 0
mul_intersect 92289
mycaract 56168
newtoncharpoly 55202
newtonsums 56168
nextk 7
nfM_to_FqM 581
nfV_to_FqV 3273
nfX_to_FqX 10927
nf_to_Fq 941794
nf_to_Fq_init 322740
nfbasis 56
nfbasis_gp 56
nfcompositum 385
nfdisc 3101
nfidealdet1 56
nfmaxord 4417
nfmaxord_check_args 7518
nfmodprinit 49
nfreducemodpr 434
nfsplitting 70
nilord 19012
ok_modpr 552720
p_is_prime 1022
pol_min 14238
polcompositum0 294
polsymmodp 31255
pradical 13365
primedec_apply_kummer 444863
primedec_aux 342706
primedec_end 13365
redelt 7168
redelt_i 11095
rnfallbase 560
rnfbasis 21
rnfdedekind 77
rnfdedekind_i 1176
rnfdet 21
rnfdiscf 7
rnfeltid_powmod 2142
rnfhnfbasis 7
rnfisfree 7
rnfisfree_aux 7
rnfjoinmodules 1099
rnfjoinmodules_i 868
rnfmaxord 1099
rnfpseudobasis 49
rnfsimplifybasis 0
rnfsteinitz 28
rowred 0
rowred_long 0
safe_Z_pvalrem 70
set_disc 7518
special_anti_uniformizer 175711
split_char 50834
testb2 7777
testc2 1505
to_ff_init 342242
triv_order 301
uniformizer 28569
update_den 485562
update_fact 224
update_phi 14707
vstar 47971
zk_to_Fq 417710
zk_to_Fq_init 19502
zkmodprinit 5079
zx_z_div 92829

Generated by: LCOV version 1.9