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 21351-66b5338) Lines: 3339 3565 93.7 %
Date: 2017-11-22 06:21:08 Functions: 312 331 94.3 %
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
RgMs_structelim 0
RgV_deplin 0
ZM_imagecompl 0
ZM_pseudoinv 0
ZabM_inv_ratlift 0
_copy 0
eigen 0
gaussmodulo 0
gaussmodulo2 0
gerepile_gauss_ker 0
reducemodlll 0
F2m_image 7
F2m_indexrank 7
F2m_inv_upper_1 7
F2m_invimage_i 7
F2m_suppl 7
F2xqM_det 7
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_invimage 7
F2xqM_mul 7
F2xqM_rank 7
F2xqM_suppl 7
FlxqM_det_gen 7
FlxqM_indexrank 7
FlxqM_invimage_CUP 7
FlxqM_invimage_gen 7
FlxqM_suppl 7
FqM_indexrank 7
col_ei_FlxC 7
image2 7
reducemodinvertible 7
F2m_F2c_gauss 14
F2m_det 14
F2m_inv_upper_1_ind 14
F2xqM_deplin 14
F2xqM_gauss 14
Flm_det_gauss_OK 14
Flm_inv_upper_1 14
FlxqM_FlxqC_gauss 14
FlxqM_deplin_echelon 14
FlxqM_det_CUP 14
FlxqM_invimage 14
FlxqM_pivots_CUP 14
FpM_FpC_gauss 14
FpM_inv_upper_1 14
FqM_FqC_gauss 14
FqM_invimage 14
_FlxC_ei 14
coeff_det 14
F2m_F2c_invimage 21
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
Flm_Flc_gauss 21
Flm_invimage_CUP 21
FlxqM_FlxqC_invimage 21
FlxqM_det 21
FlxqM_gauss 21
FlxqM_image 21
FqM_FqC_invimage 21
FqM_gauss 21
FqM_image 21
QM_det 21
gen_matinv_upper 21
F2m_det_sp 28
F2m_gauss 28
F2xqM_F2xqC_gauss 28
F2xqM_gauss_pivot 28
Flm_inv_upper_1_ind 28
FlxqM_FlxqC_mul 28
FlxqM_deplin 28
FlxqM_pivots 28
FlxqM_rank 28
FpM_gauss 28
FpM_rank 28
FqM_FqC_mul 28
FqM_deplin 28
FqM_rank 28
RgM_det_FqM 28
gen_matinvimage 28
gen_matneg 28
gerepile_gauss 34
F2m_inv 35
F2xqM_inv 35
F2xqM_ker 35
FlxqM_gauss_CUP 35
FpM_invimage_i 35
Flm_invimage_i 42
Flm_suppl 42
RgM_inv_FqM 42
F2xqM_ker_i 49
FqM_det 49
Flm_gauss 56
FlxqM_gauss_gen 56
FlxqM_inv 56
F2m_rank 63
Flm_image 63
FpM_det_gen 63
FqM_gauss_pivot_gen 63
det_bareiss 63
gen_matcolinvimage 63
gen_matinv_upper_ind 63
mateigen 63
gen_gerepile_gauss_ker 66
gerepile_mat 66
F2xqM_gauss_gen 77
RgM_ker_FpM 77
det_init_max 77
FpM_det 84
RgM_ker_FqM 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
det_develop 91
suppl 91
FpM_inv_upper_1_ind 98
FqM_inv 98
FlxqM_rsolve_upper_1 112
RgM_inv_FpM 112
RgMs_structelim_col 119
FqM_ker_gen 126
FqM_gauss_gen 133
FlxqM_rsolve_upper_2 140
gen_det 140
FpM_gauss_pivot_gen 150
F2m_ker 173
deplin_aux 182
matimage0 203
gen_colneg 217
row_count_non_zero 245
RgM_invimage 252
col_count_non_zero 259
rank 280
mydiv 287
deplin 357
FlxqM_lsolve_upper_1 364
gauss 378
FqM_mul 446
FlxqM_rsolve_upper 483
FlxqM_lsolve_upper_2 588
ZabM_ker 588
FlxqM_ker_gen 798
ZabM_pseudoinv 798
QM_inv 833
ZM_indeximage 840
indeximage0 840
gauss_pivot_ker 854
ker_aux 854
FlkM_ker 923
FpXM_ratlift 923
FlxqM_CUP 994
ZabM_inv 1043
ZabM_true_Hadamard 1043
FlxqM_gauss_pivot 1225
FqM_gauss_pivot 1260
ZabM_inv_slice 1433
ZabM_inv_worker 1433
gen_Gauss_pivot 1466
FlxqM_lsolve_upper 1484
FlkM_adjoint 1503
RgM_det_FpM 1505
image 1561
det0 1743
FpM_ker_gen 1758
FlxqM_ker_echelon 1806
ZabM_indexrank 1813
RgM_RgC_invimage 1967
inverseimage 2184
Flm_rank 2210
RgM_Fp_init 2282
FlmV_recover_pre 2426
FlxqM_lsolve_lower_unit_2 2450
FlxqM_ker 2590
FlxqM_ker_i 2618
gen_ker 2822
ZM_det3 2933
FpM_gauss_gen 2942
RgM_det2 3572
vecnorml1 3836
FqM_suppl 4025
det2 4307
ZM_inv0 4354
indexrank_all 5128
fill_wcol 5846
rem_singleton 5965
FlxqM_rsolve_lower_unit_2 5999
FlxqM_lsolve_lower_unit 6265
FlxqM_echelon_gauss 7098
ZM_inv_ratlift 7224
FlxqM_CUP_gauss 7630
QM_ker 7735
FqM_ker 8372
FqM_ker_i 8400
RgM_ker_fast 8743
ker 8743
ZM_det2 9184
det_simple_gauss 9762
RgM_det_fast 10126
gen_matmul 10178
perm_complete 10256
det 11209
gen_Gauss 11440
FlxqM_echelon 12453
FlxqM_mul 12770
Flm_indexrank 12817
F2m_gauss_sp 12894
closemodinvertible 12971
FpM_indexrank 13321
FlxqM_rsolve_lower_unit 13601
Flm_inv 14112
indexrank 14259
ZM_indexrank 15876
gauss_pivot 15876
ZM_inv1 16384
RgM_Hadamard 16793
RgM_inv_QM 20678
Flm_gauss_CUP 23211
Flm_deplin_echelon 23717
RgM_pivots 25894
ZM_det_i 29743
ZM_det 29750
F2m_gauss_pivot 31652
ZM_inv2 33712
Flm_det_CUP 34966
RgM_inv 36534
RgM_inv_fast 36534
Flm_gauss_sp_OK 37296
FpM_suppl 38566
get_suppl 39875
init_suppl 39875
FpM_FpC_invimage 41834
ZM_rank 42271
gaussmoduloall 43799
matsolvemod0 43799
matker0 46207
detint 47521
FpM_inv 47695
FpM_gauss_i 47737
Flm_Flc_invimage 48029
ZM_ker 48518
_gen_get_col 51358
parallelogramarea 51744
ZM_det_slice 52777
ZM_det_worker 52778
Flm_det_gauss 53378
ZM_ker_i 55042
init_indexrank 57092
Flm_ker 58174
RgM_inv_upper 58485
indexrank0 61380
Flm_pivots_CUP 61847
gauss_get_pivot_padic 63091
FpM_deplin 66651
FpM_intersect 72879
ZM_detmult 77649
FpM_image 77669
image_from_pivot 79237
F2_get_col 83808
Flm_det_i 88345
Flm_det_sp 88345
RgM_true_Hadamard 98820
rem_col 99654
ZM_count_0_cols 100258
ZM_pivots 104001
ZM_inv_slice 128595
ZM_inv_worker 128596
FpM_gauss_pivot 129584
Flm_adjoint 147379
ZM_inv 150141
Flm_gauss_pivot 156033
gen_matcolmul 161035
Flm_ker_echelon 168445
Flm_gauss_from_CUP 170575
_Fl_add 179053
FpM_ker 195392
Flm_pivots 217880
gauss_get_pivot_NZ 245834
get_pivot_fun 247229
RgM_solve_realimag 247316
Flm_rsolve_upper_1 263041
FpM_ker_i 267783
Fl_get_col_OK 288338
Flm_lsolve_upper_1 295502
gen_matcolmul_i 303674
F2m_ker_sp 304217
RgM_inv_upper_ind 329239
Flm_ker_gauss_OK 341007
RgM_solve 359212
is_modular_solve 359212
FpM_init 443746
get_col 454351
Flm_ker_gauss 460499
indexcompl 489478
split_realimag 507120
ZM_gauss 512716
Flm_inv_sp 517374
Flm_echelon_gauss 518050
Flm_inv_i 531486
Flm_gauss_sp 540295
approx_0 572765
gauss_get_pivot_max 585470
Flm_ker_sp 594487
Flm_ker_i 652661
init_gauss 733376
Flm_rsolve_upper_2 759112
_gen_addmul 824715
Flm_echelon 845691
Flm_lsolve_lower_unit_2 858305
Flm_lsolve_upper_2 878035
Flm_CUP 941841
split_realimag_col 966176
Flm_CUP_gauss 1122681
Fl_get_col 1376765
Flm_rsolve_lower_unit_2 1471233
Flm_rsolve_upper 1873769
Flm_lsolve_upper 2014418
Flm_lsolve_lower_unit 2199778
F2v_find_nonzero 2208864
_Fl_add_OK 2690604
_submul 2937773
Flm_rsolve_lower_unit 3459293
_Fl_addmul 6598412
_Fl_addmul_OK 12916040

Generated by: LCOV version 1.11