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 17110-9967e23) Lines: 1856 2163 85.8 %
Date: 2014-11-26 Functions: 148 158 93.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1019 1402 72.7 %

Function Name Sort by function name Hit count Sort by hit count
Decomp 16605
Flx_checkdeflate 70167
Flx_radical 70167
FpX_radical 2207
Fp_basis 26860
FqM_to_nfM 240
FqV_to_nfV 5
FqX_non_root 15
FqX_to_nfX 1030
Fq_to_nf 17025
QpXV_denom 32990
QpX_denom 230320
QpX_remove_denom 93090
RgV_nffix 20
RgX_nffix 3455
Rg_nffix 16915
Rg_to_ff 604381
ZX_Dedekind 67160
ZX_compositum_disjoint 275
ZX_rescale_inv 910
Zlx_gcd 12172
Zlx_sylvester_echelon 131068
ZpM_hnfmodid 22995
ZpX_disc_val 19485
ZpX_gcd 16605
ZpX_reduced_resultant 55850
ZpX_reduced_resultant_fast 37565
ZpX_resultant_val 50280
ZpX_resultant_val_i 69245
ZpX_sylvester_echelon 10632
_msqr 600
_sqr 2830
allbase2 0
allbase_from_maxord 2500
anti_uniformizer2 225743
checkmodpr 310
checkprid 749175
companion 0
compmod 14210
compositum 25
compositum2 130
compositum_fix 310
dbasis 30780
diag_denom 4050
dim1proj 168344
disc_from_maxord 2215
errprime 0
fact_from_factors 35
ffdegree 310
fill 610
fnz 26010
gen_if_principal 25
get_LV 9125
get_coprimes 55
get_d 115
get_g 27385
get_gamma 27170
get_maxord 4720
get_modpr 1780
get_norm 260956
get_nu 42225
get_order 50
get_partial_order_as_pols 32990
get_powers 12255
get_pr 27885
get_prid 392825
get_proj_modT 68894
getprime 32675
ideal_is1 1130
idealprimedec 112048
idealprimedec_limit_f 227958
idealprimedec_limit_norm 101060
indexpartial 1445
init_m 87845
init_norm 9125
is_prid 1143810
is_pseudo_matrix 45
is_uniformizer 260956
kill_cache 14105
lift_to_zk 5635
loop 13155
loop_init 17185
manage_cache 39590
matinv 0
maxord 67160
maxord2 0
maxord_i 23275
mk_pr 323463
modpr_TAU 226833
modpr_genFq 30
modprinit 238483
mtran 0
mtran_long 0
mul_intersect 64400
mycaract 39590
newtoncharpoly 38910
newtonsums 39590
nfM_to_FqM 165
nfV_to_FqV 1905
nfX_to_FqX 6155
nf_to_Fq 604071
nf_to_Fq_init 226628
nfbasis 40
nfbasis_gp 40
nfdisc 2215
nfidealdet1 40
nfmaxord 2505
nfmaxord_check_args 4720
nfmodprinit 35
nfreducemodpr 310
nfsplitting 45
nilord 13325
ok_modpr 394725
p_is_prime 725
pol_min 10060
polcompositum0 170
polsymmodp 22010
pradical 9125
primedec_apply_kummer 298083
primedec_aux 227958
primedec_end 9125
redelt 4975
redelt_i 7740
rnfallbase 115
rnfbasis 15
rnfdedekind 55
rnfdedekind_i 400
rnfdet 15
rnfdiscf 5
rnfeltid_powmod 755
rnfhnfbasis 5
rnfisfree 5
rnfisfree_aux 5
rnfjoinmodules 345
rnfjoinmodules_i 305
rnfmaxord 345
rnfpseudobasis 35
rnfsimplifybasis 0
rnfsteinitz 20
rowred 0
rowred_long 0
safe_Z_pvalrem 50
set_disc 4720
special_anti_uniformizer 124424
split_char 35860
testb2 5445
testc2 1055
to_ff_init 238538
triv_order 50
uniformizer 19950
update_den 343745
update_fact 160
update_phi 10285
vstar 33785
zk_to_Fq 276893
zk_to_Fq_init 11910
zkmodprinit 2235
zx_z_div 64949

Generated by: LCOV version 1.9