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 20459-9710128) Lines: 2004 2327 86.1 %
Date: 2017-04-28 05:33:48 Functions: 160 171 93.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Decomp 20394
Flx_checkdeflate 87012
Flx_radical 87012
FpX_radical 2562
Fp_basis 33408
FqM_to_nfM 984
FqV_to_nfV 0
FqX_non_root 18
FqX_to_nfX 3504
Fq_to_nf 1006824
QXQV_to_FpM 102
QpXV_denom 40104
QpX_denom 286782
QpX_remove_denom 122130
RgV_nffix 24
RgX_nffix 46410
Rg_nffix 173934
Rg_to_ff 3704766
ZX_Dedekind 83244
ZX_compositum_disjoint 330
ZX_rescale_inv 1200
Zlx_gcd 16974
Zlx_sylvester_echelon 609190
ZpM_hnfmodid 28086
ZpX_disc_val 24054
ZpX_gcd 20394
ZpX_monic_factor 1050
ZpX_reduced_resultant 68562
ZpX_reduced_resultant_fast 46656
ZpX_resultant_val 504652
ZpX_resultant_val_i 527638
ZpX_sylvester_echelon 7404
_msqr 2772
_sqr 6666
allbase2 0
anti_uniformizer 331524
checkmodpr 156
checkprid 1889187
checkprid_i 2452509
companion 0
compmod 17442
compositum 30
compositum2 198
compositum_fix 822
dbasis 37848
diag_denom 5694
dim1proj 337479
ei_msqr_mod 50754
errprime 0
expo_is_squarefree 870
fact_from_factors 60
ffdegree 66
fill 1632
fnz 33228
gen_if_principal 30
get_LV 10644
get_coprimes 60
get_g 33582
get_gamma 33222
get_maxord 8022
get_modpr 2586
get_norm 35856
get_nu 51804
get_order 60
get_partial_order_as_pols 40104
get_powers 16374
get_pr 35136
get_prid 558828
getprime 40434
ideal_is1 2874
idealprimedec 72756
idealprimedec_degrees 174
idealprimedec_galois 720
idealprimedec_kummer 562894
idealprimedec_limit_f 473182
idealprimedec_limit_norm 159552
indexpartial 2040
init_m 551308
init_norm 10644
is_pseudo_matrix 54
is_uniformizer 35856
lift_to_zk 2316
loop 16116
loop_init 21330
manage_cache 56466
matinv 0
maxord 83244
maxord2 0
maxord_i 28824
minval 1218
mk_pr 597142
modpr_TAU 550872
modpr_genFq 894
modprinit 346359
mtran 0
mtran_long 0
mul_intersect 82728
mycaract 56466
newtoncharpoly 55644
newtonsums 56466
nextk 12
nfM_to_FqM 570
nfV_to_FqV 3222
nfXQ_mul 5892
nfX_mul 5892
nfX_rem 5892
nfX_to_FqX 11268
nf_pV_to_prV 372
nf_to_Fq 3704406
nf_to_Fq_init 550674
nfbasis 48
nfbasis_gp 48
nfcompositum 450
nfdisc 2682
nfidealdet1 54
nfmaxord 5280
nfmaxord_check_args 7962
nfmodpr 204
nfmodprinit 42
nfmodprlift 48
nfreducemodpr 156
nfsplitting 102
nilord 16572
ok_modpr 471696
p_is_prime 852
pol_min 15576
polcompositum0 330
poldiscfactors 24
poldiscfactors_i 4398
polsymmodp 33426
pow_ei_mod_p 63486
pradical 10644
primedec_aux 474076
primedec_end 10644
redelt 6234
redelt_i 9606
rnfallbase 1002
rnfbasis 18
rnfdedekind 66
rnfdedekind_i 1446
rnfdet 18
rnfdiscf 6
rnfeltid_powmod 2010
rnfhnfbasis 6
rnfisfree 6
rnfisfree_aux 6
rnfjoinmodules 1380
rnfjoinmodules_i 816
rnfmaxord 1380
rnfpseudobasis 42
rnfsimplifybasis 0
rnfsteinitz 24
rowred 0
rowred_long 0
safe_Z_pvalrem 138
set_disc 7962
split_char 43908
sqr_mod 103086
testb2 6648
testc2 1326
to_ff_init 560466
triv_order 678
uniformizer 28044
update_den 455766
update_fact 354
update_phi 12744
vstar 41874
zk_to_Fq 443046
zk_to_Fq_init 9792
zkmodprinit 5037
zx_z_div 80676

Generated by: LCOV version 1.11