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 21501-1931cb9) Lines: 3335 3561 93.7 %
Date: 2017-12-16 06:20:36 Functions: 312 331 94.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 83808
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 31659
F2m_gauss_sp 12894
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 173
F2m_ker_sp 304121
F2m_rank 63
F2m_suppl 14
F2v_find_nonzero 2172631
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 35
F2xqM_ker_i 49
F2xqM_mul 7
F2xqM_rank 7
F2xqM_suppl 7
Fl_get_col 1378036
Fl_get_col_OK 288513
FlkM_adjoint 1503
FlkM_inv 0
FlkM_ker 923
FlmV_recover_pre 2426
Flm_CUP 931222
Flm_CUP_gauss 1118192
Flm_Flc_gauss 21
Flm_Flc_invimage 48057
Flm_adjoint 146307
Flm_deplin 0
Flm_deplin_echelon 23717
Flm_det 0
Flm_det_CUP 34976
Flm_det_gauss 53380
Flm_det_gauss_OK 14
Flm_det_i 88355
Flm_det_sp 88355
Flm_echelon 847952
Flm_echelon_gauss 519206
Flm_gauss 56
Flm_gauss_CUP 23693
Flm_gauss_from_CUP 169983
Flm_gauss_pivot 156402
Flm_gauss_sp 540667
Flm_gauss_sp_OK 37352
Flm_image 63
Flm_indexrank 12873
Flm_intersect 0
Flm_inv 14168
Flm_inv_i 532340
Flm_inv_sp 518172
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_CUP 21
Flm_invimage_i 42
Flm_ker 58799
Flm_ker_echelon 168496
Flm_ker_gauss 460785
Flm_ker_gauss_OK 341118
Flm_ker_i 652998
Flm_ker_sp 594199
Flm_lsolve_lower_unit 2206293
Flm_lsolve_lower_unit_2 860614
Flm_lsolve_upper 1964303
Flm_lsolve_upper_1 288399
Flm_lsolve_upper_2 857608
Flm_pivots 218180
Flm_pivots_CUP 61778
Flm_rank 2207
Flm_rsolve_lower_unit 3451402
Flm_rsolve_lower_unit_2 1468104
Flm_rsolve_upper 1846744
Flm_rsolve_upper_1 259909
Flm_rsolve_upper_2 748433
Flm_suppl 63
FlxqM_CUP 1099
FlxqM_CUP_gauss 7686
FlxqM_FlxqC_gauss 14
FlxqM_FlxqC_invimage 21
FlxqM_FlxqC_mul 28
FlxqM_deplin 28
FlxqM_deplin_echelon 14
FlxqM_det 28
FlxqM_det_CUP 21
FlxqM_det_gen 7
FlxqM_echelon 12453
FlxqM_echelon_gauss 7098
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 14
FlxqM_invimage_CUP 7
FlxqM_invimage_gen 7
FlxqM_ker 2590
FlxqM_ker_echelon 1806
FlxqM_ker_gen 798
FlxqM_ker_i 2618
FlxqM_lsolve_lower_unit 6265
FlxqM_lsolve_lower_unit_2 2450
FlxqM_lsolve_upper 1757
FlxqM_lsolve_upper_1 441
FlxqM_lsolve_upper_2 672
FlxqM_mul 12931
FlxqM_pivots 28
FlxqM_pivots_CUP 14
FlxqM_rank 28
FlxqM_rsolve_lower_unit 13601
FlxqM_rsolve_lower_unit_2 5999
FlxqM_rsolve_upper 483
FlxqM_rsolve_upper_1 112
FlxqM_rsolve_upper_2 140
FlxqM_suppl 7
FpM_FpC_gauss 14
FpM_FpC_invimage 41834
FpM_deplin 66651
FpM_det 91
FpM_det_gen 70
FpM_gauss 28
FpM_gauss_gen 2919
FpM_gauss_i 47714
FpM_gauss_pivot 129619
FpM_gauss_pivot_gen 185
FpM_image 77669
FpM_indexrank 13342
FpM_init 443450
FpM_intersect 72879
FpM_inv 47672
FpM_inv_upper_1 14
FpM_inv_upper_1_ind 98
FpM_invimage 0
FpM_invimage_i 35
FpM_ker 194972
FpM_ker_gen 1800
FpM_ker_i 267363
FpM_rank 28
FpM_suppl 38580
FpXM_ratlift 923
FqM_FqC_gauss 14
FqM_FqC_invimage 21
FqM_FqC_mul 28
FqM_deplin 28
FqM_det 70
FqM_gauss 21
FqM_gauss_gen 133
FqM_gauss_pivot 1260
FqM_gauss_pivot_gen 63
FqM_image 21
FqM_indexrank 7
FqM_inv 98
FqM_invimage 14
FqM_ker 8372
FqM_ker_gen 126
FqM_ker_i 8400
FqM_mul 446
FqM_rank 28
FqM_suppl 4025
QM_det 21
QM_inv 833
QM_ker 7735
RgM_Fp_init 2338
RgM_Hadamard 16793
RgM_RgC_invimage 1967
RgM_det2 5819
RgM_det_FpM 1519
RgM_det_FqM 42
RgM_det_fast 10168
RgM_inv 38809
RgM_inv_FpM 112
RgM_inv_FqM 42
RgM_inv_QM 22953
RgM_inv_fast 38809
RgM_inv_upper 58485
RgM_inv_upper_ind 329239
RgM_invimage 252
RgM_ker_FpM 77
RgM_ker_FqM 84
RgM_ker_fast 8743
RgM_pivots 25929
RgM_solve 359296
RgM_solve_realimag 247316
RgM_true_Hadamard 98288
RgMs_structelim 0
RgMs_structelim_col 119
RgV_deplin 0
ZM_count_0_cols 100566
ZM_det 29750
ZM_det2 9184
ZM_det3 2933
ZM_det_i 29743
ZM_det_slice 52774
ZM_det_worker 52780
ZM_detmult 77733
ZM_gauss 512695
ZM_imagecompl 0
ZM_indeximage 889
ZM_indexrank 16177
ZM_inv 151807
ZM_inv0 4494
ZM_inv1 16412
ZM_inv2 36134
ZM_inv_ratlift 8386
ZM_inv_slice 127522
ZM_inv_worker 127527
ZM_ker 48588
ZM_ker_i 55112
ZM_pivots 104449
ZM_pseudoinv 0
ZM_rank 42271
ZabM_indexrank 1813
ZabM_inv 1043
ZabM_inv_ratlift 0
ZabM_inv_slice 1433
ZabM_inv_worker 1433
ZabM_ker 588
ZabM_pseudoinv 161
ZabM_true_Hadamard 1043
_Fl_add 180733
_Fl_add_OK 2691556
_Fl_addmul 6604288
_Fl_addmul_OK 12930360
_FlxC_ei 14
_copy 0
_gen_addmul 820223
_gen_get_col 51229
_submul 2937773
approx_0 572765
closemodinvertible 12971
coeff_det 14
col_count_non_zero 259
col_ei_FlxC 7
deplin 357
deplin_aux 182
det 13505
det0 4032
det2 4307
det_bareiss 63
det_develop 91
det_init_max 77
det_simple_gauss 9762
detint 47521
eigen 0
fill_wcol 5847
gauss 378
gauss_get_pivot_NZ 246254
gauss_get_pivot_max 585470
gauss_get_pivot_padic 63091
gauss_pivot 15911
gauss_pivot_ker 854
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 43799
gen_Gauss 11417
gen_Gauss_pivot 1501
gen_colneg 217
gen_det 168
gen_gerepile_gauss_ker 66
gen_ker 2864
gen_matcolinvimage 63
gen_matcolmul 161035
gen_matcolmul_i 303674
gen_matinv_upper 21
gen_matinv_upper_ind 63
gen_matinvimage 28
gen_matmul 10178
gen_matneg 28
gerepile_gauss 34
gerepile_gauss_ker 0
gerepile_mat 66
get_col 454435
get_pivot_fun 247348
get_suppl 39952
image 1561
image2 7
image_from_pivot 79237
imagecompl 84
imagecompl_aux 84
indexcompl 490612
indeximage0 889
indexrank 14259
indexrank0 61737
indexrank_all 5107
init_gauss 733439
init_indexrank 57519
init_suppl 39952
inverseimage 2184
is_modular_solve 359296
ker 8743
ker_aux 854
mateigen 63
matimage0 203
matker0 46207
matsolvemod0 43799
mydiv 287
parallelogramarea 51744
perm_complete 10214
rank 280
reducemodinvertible 7
reducemodlll 0
rem_col 99656
rem_singleton 5966
row_count_non_zero 245
split_realimag 507120
split_realimag_col 966176
suppl 168
vecnorml1 3836

Generated by: LCOV version 1.11