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 20777-d2a9243) Lines: 3196 3362 95.1 %
Date: 2017-06-25 05:59:24 Functions: 287 301 95.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 83878
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 31295
F2m_gauss_sp 12803
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 113
F2m_ker_sp 303835
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 2207717
F2xqM_F2xqC_gauss 28
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_deplin 14
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 35
F2xqM_mul 7
F2xqM_rank 7
F2xqM_suppl 7
Fl_get_col 2125466
Fl_get_col_OK 323711
FlkM_inv 891
FlkM_ker 976
FlmV_recover 1867
Flm_CUP 819725
Flm_CUP_gauss 1078102
Flm_Flc_gauss 21
Flm_Flc_invimage 48360
Flm_deplin 0
Flm_deplin_echelon 24133
Flm_det 0
Flm_det_CUP 29336
Flm_det_gauss 40518
Flm_det_gauss_OK 14
Flm_det_i 69854
Flm_det_sp 69854
Flm_echelon 935183
Flm_echelon_gauss 564652
Flm_gauss 56
Flm_gauss_CUP 113003
Flm_gauss_pivot 161877
Flm_gauss_sp 712963
Flm_gauss_sp_OK 40539
Flm_image 63
Flm_indexrank 12173
Flm_intersect 0
Flm_inv 14119
Flm_inv_i 790507
Flm_inv_sp 776388
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_CUP 21
Flm_invimage_i 42
Flm_ker 60057
Flm_ker_echelon 172826
Flm_ker_gauss 459354
Flm_ker_gauss_OK 346947
Flm_ker_i 656313
Flm_ker_sp 596256
Flm_lsolve_lower_unit 2300028
Flm_lsolve_lower_unit_2 896911
Flm_lsolve_upper 1699131
Flm_lsolve_upper_1 274373
Flm_lsolve_upper_2 725894
Flm_pivots 226692
Flm_pivots_CUP 64815
Flm_rank 2212
Flm_rsolve_lower_unit 3144312
Flm_rsolve_lower_unit_2 1339570
Flm_rsolve_upper 1325210
Flm_rsolve_upper_1 181029
Flm_rsolve_upper_2 538074
Flm_suppl 42
FlxqM_CUP 1148
FlxqM_CUP_gauss 10889
FlxqM_FlxqC_gauss 14
FlxqM_FlxqC_invimage 21
FlxqM_FlxqC_mul 35
FlxqM_deplin 35
FlxqM_deplin_echelon 21
FlxqM_det 21
FlxqM_det_CUP 14
FlxqM_det_gen 7
FlxqM_echelon 18427
FlxqM_echelon_gauss 10273
FlxqM_gauss 21
FlxqM_gauss_CUP 35
FlxqM_gauss_gen 56
FlxqM_gauss_i 91
FlxqM_gauss_pivot 1225
FlxqM_image 21
FlxqM_indexrank 7
FlxqM_inv 56
FlxqM_invimage 28
FlxqM_invimage_CUP 21
FlxqM_invimage_gen 7
FlxqM_ker 2890
FlxqM_ker_echelon 2050
FlxqM_ker_gen 854
FlxqM_ker_i 2925
FlxqM_lsolve_lower_unit 6836
FlxqM_lsolve_lower_unit_2 2862
FlxqM_lsolve_upper 1596
FlxqM_lsolve_upper_1 392
FlxqM_lsolve_upper_2 644
FlxqM_mul 15817
FlxqM_pivots 42
FlxqM_pivots_CUP 14
FlxqM_rank 160
FlxqM_rsolve_lower_unit 18256
FlxqM_rsolve_lower_unit_2 8415
FlxqM_rsolve_upper 588
FlxqM_rsolve_upper_1 140
FlxqM_rsolve_upper_2 168
FlxqM_suppl 7
FpM_FpC_gauss 14
FpM_FpC_invimage 42165
FpM_deplin 67250
FpM_det 70
FpM_det_gen 49
FpM_gauss 14
FpM_gauss_gen 2851
FpM_gauss_i 50994
FpM_gauss_pivot 139438
FpM_gauss_pivot_gen 59
FpM_image 82691
FpM_indexrank 16373
FpM_init 464771
FpM_intersect 74238
FpM_inv 50966
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 14
FpM_ker 202763
FpM_ker_gen 1619
FpM_ker_i 275767
FpM_rank 7
FpM_suppl 40367
FpVM_ratlift 1867
FqM_FqC_gauss 14
FqM_FqC_invimage 21
FqM_FqC_mul 21
FqM_deplin 14
FqM_det 7
FqM_gauss 7
FqM_gauss_gen 56
FqM_gauss_pivot 1261
FqM_gauss_pivot_gen 78
FqM_image 7
FqM_indexrank 7
FqM_inv 35
FqM_invimage 7
FqM_ker 8233
FqM_ker_gen 29
FqM_ker_i 8247
FqM_mul 320
FqM_rank 57
FqM_suppl 4018
QM_inv 889
RgM_Fp_init 2310
RgM_Hadamard 16723
RgM_RgC_invimage 1477
RgM_det2 3599
RgM_inv_upper 23184
RgM_inv_upper_ind 47650
RgM_invimage 168
RgM_pivots 26625
RgM_solve 380767
RgM_solve_realimag 249709
RgMs_structelim 0
RgMs_structelim_col 127
RgV_deplin 0
ZM_count_0_cols 99473
ZM_det 27713
ZM_det2 7462
ZM_det3 2933
ZM_det_i 27937
ZM_detmult 30190
ZM_gauss 515170
ZM_imagecompl 0
ZM_indeximage 840
ZM_indexrank 15288
ZM_inv 123394
ZM_inv_ratlift 11221
ZM_ker 48315
ZM_pivots 103185
ZM_pseudoinv 1610
ZM_rank 42292
ZabM_indexrank 1652
ZabM_inv 763
ZabM_ker 532
ZabM_pseudoinv 707
_Fl_add 498970
_Fl_add_OK 3951744
_Fl_addmul 7868665
_Fl_addmul_OK 18134333
_FlxC_ei 14
_copy 28662
_gen_addmul 226481
_gen_get_col 49538
_submul 4377020
approx_0 574669
closemodinvertible 12957
coeff_det 203
col_count_non_zero 609
col_ei_FlxC 14
deplin 273
deplin_aux 126
det 11153
det0 1645
det2 4338
det_bareiss 196
det_develop 301
det_init_max 98
det_simple_gauss 9808
detint 83
eigen 0
fill_wcol 5613
gauss 322
gauss_get_pivot_NZ 311903
gauss_get_pivot_max 587409
gauss_get_pivot_padic 63091
gauss_pivot 16611
gauss_pivot_ker 8911
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 49
gen_Gauss 11258
gen_Gauss_pivot 1390
gen_colneg 63
gen_det 84
gen_gerepile_gauss_ker 16
gen_ker 2621
gen_matcolinvimage 63
gen_matcolmul 161000
gen_matcolmul_i 303801
gen_matinv_upper 21
gen_matinv_upper_ind 63
gen_matinvimage 21
gen_matmul 10008
gen_matneg 21
gerepile_gauss 23
gerepile_gauss_ker 6
gerepile_mat 16
get_col 485087
get_pivot_fun 265206
get_suppl 41662
image 1918
image2 7
image_from_pivot 84630
imagecompl 84
imagecompl_aux 84
indexcompl 514650
indeximage0 840
indexrank 14651
indexrank0 63564
indexrank_all 5100
init_gauss 745235
init_indexrank 59304
init_suppl 41662
inverseimage 1631
is_modular_solve 380767
ker 8869
ker_aux 8911
mateigen 63
matimage0 147
matker0 46116
matsolvemod0 49
mydiv 672
parallelogramarea 51499
perm_complete 10200
rank 196
reducemodinvertible 7
reducemodlll 0
rem_col 94867
rem_singleton 5740
row_count_non_zero 560
split_realimag 511185
split_realimag_col 972254
suppl 91

Generated by: LCOV version 1.11