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 - alglin1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17707-04f73e4) Lines: 2212 2347 94.2 %
Date: 2015-03-29 Functions: 202 217 93.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1457 1797 81.1 %

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 61570
F2m_F2c_gauss 7
F2m_F2c_invimage 7
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 21
F2m_gauss_pivot 24350
F2m_gauss_sp 10948
F2m_image 7
F2m_indexrank 0
F2m_inv 35
F2m_inv_upper_1 7
F2m_inv_upper_1_ind 14
F2m_invimage 0
F2m_invimage_i 7
F2m_ker 1281
F2m_ker_sp 115793
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 1018168
F2xqM_F2xqC_mul 7
F2xqM_det 7
F2xqM_gauss_gen 14
F2xqM_gauss_pivot 14
F2xqM_image 7
F2xqM_inv 14
F2xqM_ker 7
F2xqM_ker_i 7
F2xqM_mul 7
F2xqM_rank 7
Fl_get_col 15066
Fl_get_col_OK 2403936
Flm_Flc_gauss 14
Flm_Flc_invimage 32907
Flm_deplin 3150
Flm_det 234320
Flm_det_sp 234327
Flm_det_sp_OK 234313
Flm_gauss 35
Flm_gauss_pivot 104629
Flm_gauss_sp 287959
Flm_image 28
Flm_indexrank 6916
Flm_inv 13038
Flm_inv_sp 272030
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_i 14
Flm_ker 39344
Flm_ker_sp 337610
Flm_rank 14
Flm_suppl 14
FlxqM_FlxqC_gauss 0
FlxqM_FlxqC_mul 7
FlxqM_det 7
FlxqM_gauss 0
FlxqM_gauss_gen 14
FlxqM_gauss_pivot 217
FlxqM_image 7
FlxqM_inv 14
FlxqM_ker 328
FlxqM_ker_i 328
FlxqM_mul 142
FlxqM_rank 91
FpM_FpC_gauss 28
FpM_FpC_invimage 30492
FpM_deplin 46127
FpM_det 70
FpM_det_gen 49
FpM_gauss 21
FpM_gauss_gen 2839
FpM_gauss_i 29625
FpM_gauss_pivot 71026
FpM_gauss_pivot_gen 2221
FpM_image 46104
FpM_indexrank 21
FpM_init 283206
FpM_intersect 45663
FpM_inv 29576
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 7
FpM_ker 137079
FpM_ker_gen 1641
FpM_ker_i 183941
FpM_rank 2751
FpM_suppl 22143
FqM_FqC_gauss 14
FqM_FqC_mul 7
FqM_deplin 0
FqM_det 7
FqM_gauss 7
FqM_gauss_gen 14
FqM_gauss_pivot 182
FqM_gauss_pivot_gen 63
FqM_image 7
FqM_inv 14
FqM_ker 1016
FqM_ker_gen 8
FqM_ker_i 1016
FqM_mul 89
FqM_rank 56
FqM_suppl 455
QM_inv 4823
RgM_Fp_init 2100
RgM_Hadamard 17213
RgM_RgC_invimage 5320
RgM_det2 87907
RgM_inv_upper 7260
RgM_inv_upper_ind 18337
RgM_invimage 35
RgM_pivots 5712
RgM_solve 247215
RgM_solve_realimag 172116
RgMs_structelim 70
RgV_deplin 0
ZM_count_0_cols 51868
ZM_det 28763
ZM_det2 7679
ZM_det3 3052
ZM_det_i 28889
ZM_detmult 204589
ZM_gauss 1985
ZM_imagecompl 0
ZM_imagecomplspec 16770
ZM_indeximage 77
ZM_indexrank 630
ZM_inv 97365
ZM_pivots 52799
ZM_rank 33419
_Fl_add 5390
_Fl_add_OK 75246146
_Fl_addmul 814828
_Fl_addmul_OK 378290298
_Fl_sub 279739
_Fl_submul 258887
_copy 2887617
_gen_addmul 89782
_gen_get_col 7786
_submul 2241753
approx_0 398575
closemodinvertible 6055
coeff_det 441
col_count_non_zero 1183
deplin 161
deplin_aux 98
det 88975
det0 1610
det2 2696
det_bareiss 287
det_develop 609
det_init_max 168
det_simple_gauss 1518
detint 14
eigen 0
fill_wcol 4242
gauss 196
gauss_get_pivot_NZ 282201
gauss_get_pivot_max 398778
gauss_get_pivot_padic 287
gauss_pivot 546
gauss_pivot_ker 10031
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 49
gen_Gauss 2881
gen_Gauss_pivot 2515
gen_det 70
gen_gerepile_gauss_ker 74
gen_ker 1984
gen_matcolmul 21
gen_matcolmul_i 477
gen_matmul 96
gerepile_gauss 929
gerepile_gauss_ker 64
gerepile_mat 74
get_col 407777
get_pivot_fun 172707
get_suppl 22325
image 378
image2 7
image_from_pivot 46482
imagecompl 84
imagecompl_aux 84
imagecomplspec 0
imagecomplspec_aux 16770
indeximage0 77
indexrank 77
indexrank0 9503
indexrank_all 1859
init_gauss 163150
init_indexrank 7721
init_suppl 22325
inverseimage 5355
is_modular_solve 247215
ker 9933
ker_aux 10031
keri 806
mateigen 63
matimage0 119
matker0 133
matsolvemod0 49
mydiv 2261
parallelogramarea 54537
perm_complete 3718
rank 154
reducemodinvertible 7
reducemodlll 0
rem_col 83062
rem_singleton 4312
row_count_non_zero 1036
split_realimag 355551
split_realimag_col 672185
suppl 70

Generated by: LCOV version 1.9