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 - alglin1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20277-2bd9113) Lines: 2395 2679 89.4 %
Date: 2017-02-21 05:49:51 Functions: 226 248 91.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 52434
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 23427
F2m_gauss_sp 9422
F2m_image 7
F2m_indexrank 7
F2m_inv 35
F2m_inv_upper_1 7
F2m_inv_upper_1_ind 14
F2m_invimage 0
F2m_invimage_i 7
F2m_ker 1560
F2m_ker_sp 288512
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 1940612
F2xqM_F2xqC_gauss 28
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_deplin 7
F2xqM_det 7
F2xqM_gauss 14
F2xqM_gauss_gen 77
F2xqM_gauss_pivot 28
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_inv 35
F2xqM_invimage 7
F2xqM_ker 21
F2xqM_ker_i 28
F2xqM_mul 7
F2xqM_rank 7
F2xqM_suppl 7
Fl_get_col 3026149
Fl_get_col_OK 427860
FlkM_inv 0
FlkM_ker 0
FlmV_recover 0
Flm_Flc_gauss 21
Flm_Flc_invimage 44444
Flm_deplin 0
Flm_det 69826
Flm_det_sp 69833
Flm_det_sp_OK 1407
Flm_gauss 42
Flm_gauss_pivot 210232
Flm_gauss_sp 730737
Flm_gauss_sp_OK 44400
Flm_image 49
Flm_indexrank 10052
Flm_intersect 0
Flm_inv 483932
Flm_inv_sp 700529
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_i 21
Flm_ker 55252
Flm_ker_sp 501872
Flm_ker_sp_OK 493946
Flm_rank 2186
Flm_suppl 42
FlxqM_FlxqC_gauss 14
FlxqM_FlxqC_invimage 21
FlxqM_FlxqC_mul 21
FlxqM_deplin 7
FlxqM_det 7
FlxqM_gauss 7
FlxqM_gauss_gen 56
FlxqM_gauss_pivot 258
FlxqM_image 7
FlxqM_indexrank 7
FlxqM_inv 35
FlxqM_invimage 7
FlxqM_ker 552
FlxqM_ker_i 559
FlxqM_mul 142
FlxqM_rank 139
FlxqM_suppl 7
FpM_FpC_gauss 14
FpM_FpC_invimage 39859
FpM_deplin 58993
FpM_det 70
FpM_det_gen 49
FpM_gauss 14
FpM_gauss_gen 2807
FpM_gauss_i 42332
FpM_gauss_pivot 119638
FpM_gauss_pivot_gen 59
FpM_image 86860
FpM_indexrank 28
FpM_init 408720
FpM_intersect 70287
FpM_inv 42304
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 14
FpM_ker 188177
FpM_ker_gen 1647
FpM_ker_i 248178
FpM_rank 7
FpM_suppl 32743
FpVM_ratlift 0
FqM_FqC_gauss 14
FqM_FqC_invimage 21
FqM_FqC_mul 21
FqM_deplin 7
FqM_det 7
FqM_gauss 7
FqM_gauss_gen 56
FqM_gauss_pivot 176
FqM_gauss_pivot_gen 78
FqM_image 7
FqM_indexrank 7
FqM_inv 35
FqM_invimage 7
FqM_ker 1254
FqM_ker_gen 22
FqM_ker_i 1261
FqM_mul 320
FqM_rank 57
FqM_suppl 581
QM_inv 6433
RgM_Fp_init 2128
RgM_Hadamard 16716
RgM_RgC_invimage 1456
RgM_det2 2486
RgM_inv_upper 5922
RgM_inv_upper_ind 16409
RgM_invimage 126
RgM_pivots 15490
RgM_solve 337680
RgM_solve_realimag 237697
RgMs_structelim 0
RgMs_structelim_col 119
RgV_deplin 0
ZM_count_0_cols 99500
ZM_det 27685
ZM_det2 7448
ZM_det3 2933
ZM_det_i 27916
ZM_detmult 7623
ZM_gauss 469778
ZM_imagecompl 0
ZM_indeximage 840
ZM_indexrank 3654
ZM_inv 102541
ZM_inv_ratlift 6713
ZM_ker 1877
ZM_pivots 102725
ZM_pseudoinv 0
ZM_rank 34025
ZabM_indexrank 0
ZabM_inv 0
ZabM_ker 0
ZabM_pseudoinv 0
_Fl_add 3169575
_Fl_add_OK 78438125
_Fl_addmul 143550288
_Fl_addmul_OK 251474475
_FlxC_ei 14
_copy 28662
_gen_addmul 107693
_gen_get_col 13492
_submul 4457481
approx_0 653274
closemodinvertible 6398
coeff_det 203
col_count_non_zero 609
deplin 210
deplin_aux 126
det 11125
det0 1617
det2 3280
det_bareiss 196
det_develop 301
det_init_max 98
det_simple_gauss 9863
detint 42
eigen 0
fill_wcol 5503
gauss 294
gauss_get_pivot_NZ 294162
gauss_get_pivot_max 657418
gauss_get_pivot_padic 63091
gauss_pivot 7175
gauss_pivot_ker 8050
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 49
gen_Gauss 4235
gen_Gauss_pivot 423
gen_colneg 63
gen_det 84
gen_gerepile_gauss_ker 16
gen_ker 2340
gen_matcolinvimage 63
gen_matcolmul 20986
gen_matcolmul_i 38599
gen_matinv_upper 21
gen_matinv_upper_ind 63
gen_matinvimage 21
gen_matmul 1496
gen_matneg 21
gerepile_gauss 68
gerepile_gauss_ker 6
gerepile_mat 16
get_col 488833
get_pivot_fun 272176
get_suppl 32953
image 2926
image2 7
image_from_pivot 89807
imagecompl 84
imagecompl_aux 84
indeximage0 840
indexrank 4179
indexrank0 20612
indexrank_all 2720
init_gauss 717055
init_indexrank 18732
init_suppl 32953
inverseimage 1568
is_modular_solve 337680
ker 7966
ker_aux 8050
mateigen 63
matimage0 119
matker0 147
matsolvemod0 49
mydiv 672
parallelogramarea 51464
perm_complete 5440
rank 154
reducemodinvertible 7
reducemodlll 0
rem_col 93761
rem_singleton 5622
row_count_non_zero 560
split_realimag 486755
split_realimag_col 982957
suppl 91

Generated by: LCOV version 1.11