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 to exceed 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 - base4.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23017-8c5e72c46) Lines: 1414 1562 90.5 %
Date: 2018-09-23 05:39:13 Functions: 141 155 91.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
ZV_cba 0
ZV_cba_extend 0
Z_dcba_rec 0
Z_ppgle 0
famat_Z_gcd 0
famat_to_nf 0
idealHNF_Z_factor 0
idealapprfact 0
nfdivmodpr 0
nfkermodpr 0
nfpowmodpr 0
nfsolvemodpr 0
to_famat 0
vecinv 0
err_divexact 7
famat_div_shallow 7
hnf_QC_QC 7
idealmin 7
nfmulmodpr 7
vec_mulid 7
idealappr 14
idealappr0 14
not_in_ideal 14
chk_vdir 21
hnf_Q_Q 21
hnf_Z_QC 21
idealintersect 21
mat_ideal_two_elt2 21
hnf_Q_QC 28
hnf_Z_ZC 28
in_ideal 28
trivial_merge 28
idealaddmultoone 35
idealpow0 42
idealtwoelt2 42
idealdiv0 49
idealmul0 56
idealtwoelt0 63
idealaddtoone0 70
idealcoprime 70
isideal 91
idealaddtoone 98
idealispower 105
idealhnf0 126
gpidealfactor 140
nf_coprime_part 140
idealsqrtn_int 182
idealprodprime 329
famat_to_Fp_coprime 618
idealprod 784
vecdiv 903
ext_pow 1174
famat_pow 1174
idealdivexact 1197
idealredmodpower 1610
idealprodval 1946
famat_pows_shallow 2960
idealredmodpower_i 3206
prV_e_muls 3339
Q_nffactor 3472
pr_inv 3579
nf_to_Fp_coprime 4026
idealhnf 4242
famat_mulpows_shallow 4606
to_Fp_coprime 4726
make_integral 5600
gpidealval 6573
idealnorm 7105
factorbackprime 8337
_mul 8601
ext_inv 10955
famat_to_nf_moddivisor 11039
famat_inv 11095
idealcoprimefact 12572
idealaddtoone_i 14350
famatsmall_reduce 14671
vecpow 15729
famat_sqr 15737
idealmulred 16560
idealdivpowprime 17199
pr_uniformizer 18074
famat_reduce 18522
idealapprfact_i 20823
idealpows 21336
addmul_mat 23404
pr_inv_p 23702
idealdiv 23779
_idealmulred 25161
ext_sqr 26314
_idealsqrred 26328
_sqr 26328
idealsqr 26349
idealsqr_aux 26349
nf_get_Gtwist1 26945
twistG 26987
famat_inv_shallow 27055
append 28968
idealsqrprime 31511
prV_lcm_capZ 35250
idealHNF_factor 38043
idealHNF_Z_factor_i 38827
idealHNF_factor_i 38827
idealfactor 39541
idealnumden 39968
RM_round_maxrank 40798
idealfactor_limit 41557
idealpowred 43500
idealtwoelt 52504
addmul_col 52939
ZM_famat_limit 54663
idealHNF_inv 58799
famat_pow_shallow 59115
famat_mulpow_shallow 59241
idealadd 61285
p_makecoprime 62069
famat_add 72640
get_random_a 72722
famat_mul_shallow 78251
famat_mul 79133
idealmulpowprime 91610
idealinv 98931
famat_makecoprime 111640
idealaddtoone_raw 113533
idealpowprime 113547
ext_mul 113839
idealhnf_two 120961
_idealaddtoone 127883
idealred0 135473
nf_get_Gtwist 135480
zk_pvalrem 135815
ok_elt 138694
idealHNF_inv_Z 167945
mat_ideal_two_elt 173108
idealpow 183534
idealpow_aux 183534
vecmul 197554
idealmulelt 204187
idealHNF_norm_pval 208425
idealHNF_val 226824
nf_remove_denom_p 263418
idealhnf_principal 271841
idealhnf_shallow 325278
Z_cba 344771
Z_ppio 454020
idealval 516108
Z_ppo 799718
to_famat_shallow 879807
idealHNF_mul 942126
idealmul 1302057
idealmul_aux 1302057
pr_hnf 1840185
idealHNF_mul_two 1931953
Z_cba_rec 3069759
idealtyp 4453375
u_ppo 33270553

Generated by: LCOV version 1.13