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.8.0 lcov report (development 18946-c0ba5ba) Lines: 1899 2210 85.9 %
Date: 2016-05-26 Functions: 149 159 93.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1052 1436 73.3 %

Function Name Sort by function name Hit count Sort by hit count
Decomp 23296
Flx_checkdeflate 99769
Flx_radical 99769
FpX_radical 3085
Fp_basis 40156
FqM_to_nfM 1176
FqV_to_nfV 7
FqX_non_root 21
FqX_to_nfX 3997
Fq_to_nf 39900
QpXV_denom 46270
QpX_denom 330344
QpX_remove_denom 139748
RgV_nffix 28
RgX_nffix 63980
Rg_nffix 185927
Rg_to_ff 1238412
ZX_Dedekind 95480
ZX_compositum_disjoint 385
ZX_rescale_inv 1330
Zlx_gcd 17771
Zlx_sylvester_echelon 186152
ZpM_hnfmodid 32424
ZpX_disc_val 27363
ZpX_gcd 23296
ZpX_reduced_resultant 78918
ZpX_reduced_resultant_fast 53375
ZpX_resultant_val 70427
ZpX_resultant_val_i 96901
ZpX_sylvester_echelon 12963
_msqr 2569
_sqr 8036
allbase2 0
allbase_from_maxord 5621
anti_uniformizer2 350341
checkmodpr 434
checkprid 1098350
companion 0
compmod 19894
compositum 35
compositum2 231
compositum_fix 805
dbasis 43491
diag_denom 5971
dim1proj 273981
disc_from_maxord 3129
errprime 0
fact_from_factors 63
ffdegree 434
fill 2016
fnz 36666
gen_if_principal 35
get_LV 14275
get_coprimes 70
get_d 1071
get_g 38402
get_gamma 38031
get_maxord 8757
get_modpr 46900
get_norm 467532
get_nu 59353
get_order 70
get_partial_order_as_pols 46270
get_powers 19677
get_pr 42291
get_prid 640276
get_proj_modT 141429
getprime 45997
ideal_is1 3311
idealprimedec 117483
idealprimedec_limit_f 405774
idealprimedec_limit_norm 180110
indexpartial 2373
init_m 123802
init_norm 14275
is_prid 1741174
is_pseudo_matrix 63
is_uniformizer 467532
lift_to_zk 11648
loop 18431
loop_init 24241
manage_cache 64659
matinv 0
maxord 95480
maxord2 0
maxord_i 32837
mk_pr 576849
modpr_TAU 352924
modpr_genFq 1848
modprinit 418602
mtran 0
mtran_long 0
mul_intersect 96188
mycaract 64659
newtoncharpoly 63721
newtonsums 64659
nextk 14
nfM_to_FqM 707
nfV_to_FqV 47681
nfX_to_FqX 12915
nf_to_Fq 1237978
nf_to_Fq_init 352644
nfbasis 56
nfbasis_gp 56
nfcompositum 448
nfdisc 3129
nfidealdet1 56
nfmaxord 5628
nfmaxord_check_args 8757
nfmodprinit 49
nfreducemodpr 434
nfsplitting 112
nilord 18844
ok_modpr 597618
p_is_prime 1001
pol_min 14875
polcompositum0 308
polsymmodp 38255
pradical 14275
primedec_apply_kummer 538244
primedec_aux 405774
primedec_end 14275
redelt 7105
redelt_i 10955
rnfallbase 1078
rnfbasis 21
rnfdedekind 77
rnfdedekind_i 1624
rnfdet 21
rnfdiscf 7
rnfeltid_powmod 2310
rnfhnfbasis 7
rnfisfree 7
rnfisfree_aux 7
rnfjoinmodules 1547
rnfjoinmodules_i 1008
rnfmaxord 1547
rnfpseudobasis 49
rnfsimplifybasis 0
rnfsteinitz 28
rowred 0
rowred_long 0
safe_Z_pvalrem 112
set_disc 8757
special_anti_uniformizer 176299
split_char 50253
testb2 7672
testc2 1463
to_ff_init 374855
triv_order 714
uniformizer 29899
update_den 523089
update_fact 238
update_phi 14581
vstar 47593
zk_to_Fq 570142
zk_to_Fq_init 22211
zkmodprinit 49487
zx_z_div 92389

Generated by: LCOV version 1.9