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 23339-b1c33c51a) Lines: 3442 3687 93.4 %
Date: 2018-12-11 05:41:34 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_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
coeff_det 210
matimage0 210
det_init_max 231
RgM_invimage 252
RgM_invimage_fast 252
RgM_rank_fast 287
ZabM_pseudoinv 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
Flm_image 637
FlxqM_lsolve_upper_2 728
FlxqM_ker_gen 784
FpM_gauss_pivot_gen 815
mydiv 924
gauss_pivot_ker 952
ker_aux 952
ZabM_ker 966
QM_gauss 1106
row_count_non_zero 1113
col_count_non_zero 1127
QM_indexrank 1148
FlxqM_CUP 1253
FlxqM_gauss_pivot 1267
FqM_gauss_pivot 1337
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
ZabM_inv 1757
ZabM_true_Hadamard 1757
FlxqM_ker_echelon 1813
FlkM_ker 1866
FpXM_ratlift 1866
FlxqM_lsolve_upper 1869
RgM_RgC_invimage_fast 2051
RgM_RgC_invimage 2156
gen_Gauss_pivot 2215
FpM_ker_gen 2259
ZabM_indexrank 2352
RgM_Fp_init 2359
inverseimage 2366
ZM_indeximage 2422
indeximage0 2422
FlxqM_lsolve_lower_unit_2 2478
Flm_rank 2480
ZabM_inv_slice 2500
ZabM_inv_worker 2500
FlxqM_ker 2583
FlxqM_ker_i 2618
FlkM_adjoint 2709
ZM_det3 2940
gen_ker 3351
FpM_det 3948
FpM_gauss_gen 3982
FqM_suppl 4039
det0 4053
ZM_pseudoinv 4431
gauss_get_pivot_NZ 4529
FlmV_recover_pre 4575
ZM_inv0 4991
det2 5772
fill_wcol 5925
rem_singleton 6051
FlxqM_rsolve_lower_unit_2 6069
FlxqM_lsolve_lower_unit 6391
FlxqM_echelon_gauss 7147
indexrank_all 7384
RgM_det2 7396
QM_ker 7644
FlxqM_CUP_gauss 7819
vecnorml1 7854
FqM_ker 8372
FqM_ker_i 8449
RgM_ker_fast 8645
ker 8645
ZM_det2 8946
det_simple_gauss 9973
RgM_det_fast 10575
gen_Gauss 12515
FlxqM_echelon 12537
closemodinvertible 13293
FlxqM_rsolve_lower_unit 13783
det 14395
perm_complete 14768
gen_matmul 15155
FlxqM_mul 15332
RgM_Hadamard 17038
Flm_indexrank 19138
ZM_indexrank 19348
F2m_gauss_sp 20851
gauss_pivot 20986
Flm_inv 21497
RgM_indexrank_fast 22400
indexrank 22400
ZM_inv1 22747
Flm_deplin_echelon 23552
FpM_indexrank 29113
ZM_det_i 29764
ZM_det 29771
RgM_inv_QM 32130
RgM_pivots 33198
FpM_suppl 35084
Flm_det_CUP 36281
get_suppl 36463
init_suppl 36463
F2m_gauss_pivot 40116
Flm_gauss_CUP 42933
FpM_FpC_invimage 43168
ZM_inv2 45433
matker0 46214
detint 47549
ZM_rank 47792
ZM_ker 48819
Flm_gauss_sp_OK 51834
Flm_Flc_invimage 52352
ZM_det_slice 53568
ZM_det_worker 53570
parallelogramarea 53991
RgM_inv 54995
RgM_inv_fast 54995
Flm_det_gauss 55110
ZM_ker_i 55630
_gen_get_col 56845
FqM_mul 59960
gauss_get_pivot_padic 63938
FpM_inv 66365
FpM_gauss_i 66414
Flm_pivots_CUP 67301
FpM_deplin 68500
Flm_ker 68998
RgM_inv_upper 74326
FpM_intersect 74415
FpM_image 77586
image_from_pivot 78321
init_indexrank 90860
Flm_det_i 91392
Flm_det_sp 91392
indexrank0 95822
ZM_detmult 97081
rem_col 100893
RgM_solve_fast 108550
RgM_true_Hadamard 112890
ZM_count_0_cols 115290
Flm_ker_gauss_OK 116439
ZM_pivots 119294
ZM_adj_ratlift 120492
Flm_ker_echelon 121802
ZM_inv_slice 133501
ZM_inv_worker 133501
F2_get_col 133618
FpM_gauss_pivot 141811
Flm_adjoint 145348
gen_matcolmul 161336
Flm_gauss_pivot 178273
ZM_inv 186068
Flm_gauss_from_CUP 188255
get_col 193471
FpM_ker 198916
get_pivot_fun 206228
_Fl_add 208659
Flm_ker_gauss 236727
Flm_rsolve_upper_1 244712
Flm_pivots 245574
RgM_solve_realimag 252531
RgM_RgC_solve_fast 264796
FpM_ker_i 273184
RgM_solve_basecase 277531
Flm_lsolve_upper_1 280754
F2m_ker_sp 304758
gen_matcolmul_i 311115
Flm_ker_sp 313083
RgM_inv_upper_ind 359395
Fl_get_col_OK 369227
RgM_solve 373346
Flm_ker_i 382081
indexcompl 411777
Flm_echelon_gauss 443822
FpM_init 483446
split_realimag 520210
approx_0 596313
gauss_get_pivot_max 617334
ZlM_gauss_ratlift 632103
Flm_inv_sp 632152
ZM_gauss 632201
Flm_gauss_sp 652430
Flm_inv_i 653649
Flm_lsolve_lower_unit_2 740662
Flm_rsolve_upper_2 741020
Flm_echelon 746444
init_gauss 806287
Flm_lsolve_upper_2 819632
_gen_addmul 878509
Flm_CUP 975849
split_realimag_col 990199
Flm_CUP_gauss 1077694
Flm_rsolve_lower_unit_2 1409642
Fl_get_col 1566897
Flm_rsolve_upper 1783200
Flm_lsolve_upper 1865481
Flm_lsolve_lower_unit 1894287
F2v_find_nonzero 2403775
_Fl_add_OK 2811391
_submul 2891831
Flm_rsolve_lower_unit 3245547
_Fl_addmul 6524576
_Fl_addmul_OK 14868771

Generated by: LCOV version 1.13