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 20924-e159ed0) Lines: 3192 3358 95.1 %
Date: 2017-08-21 06:23:16 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 84382
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 31638
F2m_gauss_sp 12908
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 304315
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 2211027
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 2132739
Fl_get_col_OK 324341
FlkM_inv 1004
FlkM_ker 1035
FlmV_recover 2039
Flm_CUP 820357
Flm_CUP_gauss 1078839
Flm_Flc_gauss 21
Flm_Flc_invimage 48444
Flm_deplin 0
Flm_deplin_echelon 24133
Flm_det 0
Flm_det_CUP 29380
Flm_det_gauss 40518
Flm_det_gauss_OK 14
Flm_det_i 69898
Flm_det_sp 69898
Flm_echelon 935757
Flm_echelon_gauss 564977
Flm_gauss 56
Flm_gauss_CUP 113151
Flm_gauss_pivot 163197
Flm_gauss_sp 716613
Flm_gauss_sp_OK 40679
Flm_image 63
Flm_indexrank 12418
Flm_intersect 0
Flm_inv 14259
Flm_inv_i 794305
Flm_inv_sp 780046
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_CUP 21
Flm_invimage_i 42
Flm_ker 60325
Flm_ker_echelon 172902
Flm_ker_gauss 459800
Flm_ker_gauss_OK 347366
Flm_ker_i 656835
Flm_ker_sp 596510
Flm_lsolve_lower_unit 2301242
Flm_lsolve_lower_unit_2 897334
Flm_lsolve_upper 1700007
Flm_lsolve_upper_1 274437
Flm_lsolve_upper_2 726371
Flm_pivots 228012
Flm_pivots_CUP 64815
Flm_rank 2209
Flm_rsolve_lower_unit 3146743
Flm_rsolve_lower_unit_2 1340619
Flm_rsolve_upper 1326370
Flm_rsolve_upper_1 181045
Flm_rsolve_upper_2 538712
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 42249
FpM_deplin 67376
FpM_det 70
FpM_det_gen 49
FpM_gauss 14
FpM_gauss_gen 2851
FpM_gauss_i 51099
FpM_gauss_pivot 139823
FpM_gauss_pivot_gen 59
FpM_image 82929
FpM_indexrank 16457
FpM_init 465660
FpM_intersect 74238
FpM_inv 51071
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 14
FpM_ker 203078
FpM_ker_gen 1626
FpM_ker_i 276208
FpM_rank 7
FpM_suppl 40430
FpVM_ratlift 2039
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 910
RgM_Fp_init 2310
RgM_Hadamard 16765
RgM_RgC_invimage 1484
RgM_det2 3599
RgM_inv_upper 93359
RgM_inv_upper_ind 608483
RgM_invimage 7196
RgM_pivots 26653
RgM_solve 389237
RgM_solve_realimag 248932
RgMs_structelim 0
RgMs_structelim_col 119
RgV_deplin 0
ZM_count_0_cols 100544
ZM_det 27720
ZM_det2 7462
ZM_det3 2933
ZM_det_i 27986
ZM_detmult 131871
ZM_gauss 514526
ZM_imagecompl 0
ZM_indeximage 840
ZM_indexrank 15295
ZM_inv 125179
ZM_inv_ratlift 11193
ZM_ker 48245
ZM_pivots 104256
ZM_pseudoinv 1547
ZM_rank 42446
ZabM_indexrank 1736
ZabM_inv 875
ZabM_ker 574
ZabM_pseudoinv 742
_Fl_add 499159
_Fl_add_OK 3961747
_Fl_addmul 7885327
_Fl_addmul_OK 18153664
_FlxC_ei 14
_copy 28662
_gen_addmul 226481
_gen_get_col 49538
_submul 4377895
approx_0 574837
closemodinvertible 12957
coeff_det 203
col_count_non_zero 609
col_ei_FlxC 14
deplin 273
deplin_aux 126
det 11195
det0 1687
det2 4338
det_bareiss 196
det_develop 301
det_init_max 98
det_simple_gauss 9808
detint 101743
eigen 0
fill_wcol 5847
gauss 322
gauss_get_pivot_NZ 481251
gauss_get_pivot_max 587577
gauss_get_pivot_padic 63091
gauss_pivot 16639
gauss_pivot_ker 15946
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 2628
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 542127
get_pivot_fun 279954
get_suppl 41725
image 1918
image2 7
image_from_pivot 84868
imagecompl 84
imagecompl_aux 84
indexcompl 514879
indeximage0 840
indexrank 14679
indexrank0 63963
indexrank_all 5135
init_gauss 752304
init_indexrank 59668
init_suppl 41725
inverseimage 1617
is_modular_solve 389237
ker 15904
ker_aux 15946
mateigen 63
matimage0 147
matker0 46116
matsolvemod0 49
mydiv 672
parallelogramarea 51667
perm_complete 10270
rank 196
reducemodinvertible 7
reducemodlll 0
rem_col 99655
rem_singleton 5966
row_count_non_zero 560
split_realimag 509918
split_realimag_col 970308
suppl 91

Generated by: LCOV version 1.11