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 - alglin1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23017-8c5e72c46) Lines: 3441 3686 93.4 %
Date: 2018-09-23 05:39:13 Functions: 340 359 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_deplin 0
F2m_invimage 0
FlkM_inv 0
Flm_deplin 0
Flm_det 0
Flm_intersect 0
Flm_invimage 0
FpM_invimage 0
QM_rank 0
RgM_indexrank_FqM 0
RgMs_structelim 0
RgV_deplin 0
ZM_imagecompl 0
ZM_inv_ratlift 0
ZabM_inv_ratlift 0
_copy 0
eigen 0
gerepile_gauss_ker 0
reducemodlll 0
F2m_image 7
F2m_indexrank 7
F2m_inv_upper_1 7
F2m_invimage_i 7
F2xqM_det 7
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_rank 7
F2xqM_suppl 7
FlxqM_det_gen 7
FlxqM_indexrank 7
FqM_indexrank 7
image2 7
reducemodinvertible 7
gerepile_gauss 10
F2m_F2c_gauss 14
F2m_det 14
F2m_inv_upper_1_ind 14
F2m_suppl 14
F2xqM_deplin 14
Flm_inv_upper_1 14
FlxqM_FlxqC_gauss 14
FlxqM_pivots_CUP 14
FlxqM_suppl 14
FpM_FpC_gauss 14
FpM_inv_upper_1 14
FqM_FqC_gauss 14
RgM_is_symmetric_cx 14
col_ei_FlxC 14
eigen_err 14
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_gauss 21
F2xqM_invimage 21
F2xqM_ker 21
Flm_Flc_gauss 21
Flm_invimage_CUP 21
FlxqM_FlxqC_invimage 21
FlxqM_deplin_echelon 21
FlxqM_det_CUP 21
FlxqM_gauss 21
FlxqM_image 21
FlxqM_invimage_CUP 21
FlxqM_invimage_gen 21
FqM_FqC_invimage 21
FqM_gauss 21
F2xqM_F2xqC_gauss 28
F2xqM_gauss_pivot 28
Flm_inv_upper_1_ind 28
FlxqM_FlxqC_mul 28
FlxqM_det 28
FlxqM_pivots 28
FlxqM_rank 28
FpM_rank 28
FqM_FqC_mul 28
RgM_RgC_invimage_FpC 28
RgM_deplin_i 28
RgM_indexrank_FpM 28
gen_matinv_upper 28
F2m_F2c_invimage 35
F2m_gauss 35
F2m_inv 35
F2xqM_inv 35
F2xqM_ker_i 35
FlxqM_deplin 35
FlxqM_gauss_CUP 35
FpM_gauss 35
FpM_invimage_i 35
RgM_image_FqM 35
Flm_invimage_i 42
FlxqM_invimage 42
FqM_invimage 42
RgM_deplin_FqM 42
RgM_det_FqM 42
RgM_inv_FqM 42
FqM_image 49
RgM_RgC_solve_FpC 49
RgM_rank_FqM 49
FlxqM_gauss_gen 56
FlxqM_inv 56
F2m_rank 63
Flm_gauss 63
Flm_image 63
Flm_suppl 63
RgM_image_FpM 63
gen_matcolinvimage 63
gen_gerepile_gauss_ker 66
gerepile_mat 66
FqM_det 70
FqM_rank 70
RgM_suppl_FpM 70
FqM_deplin 77
RgM_ker_FpM 77
mateigen 77
F2xqM_gauss_gen 84
RgM_invimage_FpM 84
_FlxC_ei 84
gen_matinvimage 84
gen_matneg 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
RgM_ker_FqM 91
F2m_ker 92
FpM_inv_upper_1_ind 98
FqM_inv 98
QM_deplin 98
RgM_solve_FpM 98
FqM_gauss_pivot_gen 105
RgM_deplin_FpM 105
RgM_inv_FpM 112
FqM_ker_gen 126
RgM_rank_FpM 126
RgMs_structelim_col 126
FqM_gauss_gen 133
FlxqM_rsolve_upper_1 140
gen_matinv_upper_ind 147
FlxqM_rsolve_upper_2 168
RgM_suppl_fast 175
suppl 175
QM_det 196
ZabM_pseudoinv 203
coeff_det 210
matimage0 210
det_init_max 231
RgM_invimage 252
RgM_invimage_fast 252
RgM_rank_fast 287
rank 287
FpM_det_gen 315
det_bareiss 329
RgM_deplin 357
RgM_deplin_fast 357
deplin 357
gen_det 413
gauss 420
det_develop 441
FlxqM_lsolve_upper_1 469
gen_colneg 469
FlxqM_rsolve_upper 588
ZabM_ker 686
FlxqM_lsolve_upper_2 728
FlxqM_ker_gen 784
FpM_gauss_pivot_gen 815
QM_gauss 854
mydiv 924
gauss_pivot_ker 952
ker_aux 952
FlkM_ker 1090
FpXM_ratlift 1090
row_count_non_zero 1113
col_count_non_zero 1127
QM_indexrank 1148
FlxqM_CUP 1253
FlxqM_gauss_pivot 1267
FqM_gauss_pivot 1337
ZabM_inv 1372
ZabM_true_Hadamard 1372
F2xqM_mul 1407
QM_image 1463
RgM_det_FpM 1519
RgM_image_fast 1624
image 1624
F2m_det_sp 1631
QM_inv 1694
Flm_det_gauss_OK 1743
FlxqM_ker_echelon 1813
FlxqM_lsolve_upper 1869
ZabM_inv_slice 1950
ZabM_inv_worker 1950
ZabM_indexrank 2030
FlkM_adjoint 2040
RgM_RgC_invimage_fast 2051
RgM_RgC_invimage 2156
Flm_rank 2178
gen_Gauss_pivot 2215
FpM_ker_gen 2259
RgM_Fp_init 2359
inverseimage 2366
ZM_indeximage 2422
indeximage0 2422
FlxqM_lsolve_lower_unit_2 2478
FlxqM_ker 2583
FlxqM_ker_i 2618
ZM_det3 2940
FlmV_recover_pre 3130
gen_ker 3351
FpM_det 3948
FpM_gauss_gen 3982
FqM_suppl 4039
det0 4053
ZM_inv0 4312
ZM_pseudoinv 4354
gauss_get_pivot_NZ 4466
det2 4939
fill_wcol 5927
rem_singleton 6053
vecnorml1 6062
FlxqM_rsolve_lower_unit_2 6069
FlxqM_lsolve_lower_unit 6391
RgM_det2 6479
indexrank_all 6621
FlxqM_echelon_gauss 7147
QM_ker 7637
FlxqM_CUP_gauss 7819
FqM_ker 8372
FqM_ker_i 8449
RgM_ker_fast 8638
ker 8638
ZM_det2 8939
det_simple_gauss 9896
RgM_det_fast 10575
gen_Gauss 12515
FlxqM_echelon 12537
gauss_pivot 12740
perm_complete 13242
closemodinvertible 13293
FlxqM_rsolve_lower_unit 13783
det 14136
RgM_indexrank_fast 14154
indexrank 14154
gen_matmul 15155
FlxqM_mul 15332
ZM_inv1 16993
RgM_Hadamard 17038
Flm_indexrank 18809
ZM_indexrank 19012
F2m_gauss_sp 20459
Flm_inv 21490
Flm_deplin_echelon 23552
RgM_pivots 23916
RgM_inv_QM 28098
FpM_indexrank 29113
ZM_det_i 29757
ZM_det 29764
FpM_suppl 34482
get_suppl 35861
init_suppl 35861
Flm_det_CUP 36287
ZM_inv2 38622
F2m_gauss_pivot 39241
FpM_FpC_invimage 42328
Flm_gauss_CUP 42835
ZM_rank 43718
RgM_inv 45489
RgM_inv_fast 45489
matker0 46214
detint 47549
ZM_ker 48819
Flm_Flc_invimage 51463
Flm_gauss_sp_OK 51554
ZM_det_slice 53568
ZM_det_worker 53569
parallelogramarea 53991
Flm_det_gauss 55108
ZM_ker_i 55623
_gen_get_col 56845
RgM_inv_upper 58982
FqM_mul 59960
gauss_get_pivot_padic 63938
FpM_inv 65693
FpM_gauss_i 65742
Flm_pivots_CUP 67064
FpM_deplin 67352
Flm_ker 67453
FpM_intersect 73155
FpM_image 76522
image_from_pivot 76683
ZM_detmult 77957
RgM_solve_fast 79458
init_indexrank 81949
indexrank0 86148
Flm_det_i 91398
Flm_det_sp 91398
rem_col 100905
ZM_count_0_cols 106800
ZM_pivots 110713
RgM_true_Hadamard 112316
Flm_ker_gauss_OK 113219
ZM_adj_ratlift 119818
Flm_ker_echelon 120658
F2_get_col 131994
ZM_inv_worker 132495
ZM_inv_slice 132496
FpM_gauss_pivot 140145
Flm_adjoint 142966
gen_matcolmul 161336
Flm_gauss_pivot 167275
ZM_inv 172250
_Fl_add 185475
Flm_gauss_from_CUP 185771
get_col 186303
get_pivot_fun 191780
FpM_ker 196522
Flm_ker_gauss 232842
Flm_pivots 234339
Flm_rsolve_upper_1 240598
RgM_solve_realimag 248289
RgM_RgC_solve_fast 261198
RgM_solve_basecase 267661
FpM_ker_i 269642
Flm_lsolve_upper_1 276604
F2m_ker_sp 303063
Flm_ker_sp 309599
gen_matcolmul_i 311115
RgM_inv_upper_ind 330471
RgM_solve 340656
Fl_get_col_OK 367980
Flm_ker_i 377052
indexcompl 407303
Flm_echelon_gauss 437223
FpM_init 477566
split_realimag 510739
approx_0 575285
ZlM_gauss_ratlift 581866
Flm_inv_sp 581915
ZM_gauss 581964
gauss_get_pivot_max 588060
Flm_gauss_sp 602004
Flm_inv_i 603405
Flm_rsolve_upper_2 731319
Flm_lsolve_lower_unit_2 732356
Flm_echelon 734390
init_gauss 749925
Flm_lsolve_upper_2 810443
_gen_addmul 878509
Flm_CUP 966453
split_realimag_col 972230
Flm_CUP_gauss 1065033
Flm_rsolve_lower_unit_2 1389499
Fl_get_col 1457283
Flm_rsolve_upper 1758084
Flm_lsolve_upper 1842119
Flm_lsolve_lower_unit 1872819
F2v_find_nonzero 2393265
_Fl_add_OK 2773339
_submul 2824100
Flm_rsolve_lower_unit 3193318
_Fl_addmul 6338501
_Fl_addmul_OK 14815148

Generated by: LCOV version 1.13