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 16746-c2cb716) Lines: 1998 2116 94.4 %
Date: 2014-08-31 Functions: 152 154 98.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1133 1362 83.2 %

Function Name Sort by function name Hit count Sort by hit count
Decomp 16430
Flx_checkdeflate 69419
Flx_radical 69419
FpX_radical 2220
Fp_basis 25205
FqM_to_nfM 280
FqV_to_nfV 5
FqX_non_root 15
FqX_to_nfX 1080
Fq_to_nf 17850
QpXV_denom 32640
QpX_denom 227115
QpX_remove_denom 92305
RgV_nffix 20
RgX_nffix 2920
Rg_nffix 13505
Rg_to_ff 624082
ZX_Dedekind 66470
ZX_compositum_disjoint 275
ZX_rescale_inv 905
Zlx_gcd 12029
Zlx_sylvester_echelon 129566
ZpM_hnfmodid 22820
ZpX_disc_val 19315
ZpX_gcd 16430
ZpX_reduced_resultant 55075
ZpX_reduced_resultant_fast 36915
ZpX_resultant_val 49842
ZpX_resultant_val_i 68647
ZpX_sylvester_echelon 10586
_msqr 680
_sqr 2990
allbase2 10
allbase_from_maxord 2430
anti_uniformizer2 260896
checkmodpr 310
checkprid 784472
companion 10
compmod 14074
compositum 30
compositum2 130
compositum_fix 320
dbasis 30585
diag_denom 3865
dim1proj 195367
disc_from_maxord 2215
errprime 0
fact_from_factors 35
ffdegree 310
fill 650
fnz 23715
gen_if_principal 40
get_LV 8540
get_coprimes 55
get_d 125
get_g 27202
get_gamma 26962
get_maxord 4650
get_norm 328613
get_nu 41947
get_order 70
get_partial_order_as_pols 32640
get_powers 11880
get_pr 26165
get_prid 398550
get_proj_modT 71374
getprime 32489
ideal_is1 1325
idealprimedec 262154
indexpartial 895
init_m 86757
init_norm 8540
is_prid 1183177
is_pseudo_matrix 65
is_uniformizer 328613
kill_cache 14078
lift_to_zk 5455
loop 13037
loop_init 17087
manage_cache 39302
matinv 160
maxord 66470
maxord2 15
maxord_i 23100
mk_pr 454772
modpr_TAU 262006
modpr_genFq 30
modprinit 268441
mtran 820
mtran_long 1555
mul_intersect 60455
mycaract 39302
newtoncharpoly 38652
newtonsums 39302
nfM_to_FqM 185
nfV_to_FqV 20
nfX_to_FqX 3060
nf_to_Fq 623772
nf_to_Fq_init 261801
nfbasis 40
nfbasis_gp 40
nfdisc 2215
nfidealdet1 50
nfmaxord 2435
nfmaxord_check_args 4650
nfmodprinit 35
nfreducemodpr 310
nilord 13230
ok_modpr 398785
p_is_prime 710
pol_min 9775
polcompositum0 175
polsymmodp 21860
pradical 8540
primedec_apply_kummer 430457
primedec_aux 262154
primedec_end 8540
redelt 4977
redelt_i 7702
rnfallbase 125
rnfbasis 20
rnfdedekind 55
rnfdedekind_i 420
rnfdet 15
rnfdiscf 10
rnfeltid_powmod 835
rnfhnfbasis 10
rnfisfree 10
rnfisfree_aux 10
rnfjoinmodules 365
rnfjoinmodules_i 325
rnfmaxord 365
rnfpseudobasis 40
rnfsimplifybasis 0
rnfsteinitz 30
rowred 30
rowred_long 80
safe_Z_pvalrem 50
set_disc 4650
special_anti_uniformizer 163178
split_char 35604
testb2 5440
testc2 1037
to_ff_init 270006
triv_order 50
uniformizer 19040
update_den 338656
update_fact 160
update_phi 10260
vstar 33584
zk_to_Fq 306483
zk_to_Fq_init 8205
zkmodprinit 180
zx_z_div 64246

Generated by: LCOV version 1.9