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 21188-db834f2) Lines: 3245 3427 94.7 %
Date: 2017-10-20 06:23:07 Functions: 292 306 95.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 83696
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 31631
F2m_gauss_sp 12880
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 304161
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 2208283
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 2038587
Fl_get_col_OK 288223
FlkM_inv 1004
FlkM_ker 1035
FlmV_recover 2039
Flm_CUP 1008899
Flm_CUP_gauss 1151564
Flm_Flc_gauss 21
Flm_Flc_invimage 47990
Flm_deplin 0
Flm_deplin_echelon 23713
Flm_det 0
Flm_det_CUP 34966
Flm_det_gauss 53312
Flm_det_gauss_OK 14
Flm_det_i 88266
Flm_det_sp 88265
Flm_echelon 861356
Flm_echelon_gauss 526063
Flm_gauss 56
Flm_gauss_CUP 145420
Flm_gauss_pivot 155302
Flm_gauss_sp 672828
Flm_gauss_sp_OK 37280
Flm_image 63
Flm_indexrank 12285
Flm_intersect 0
Flm_inv 14126
Flm_inv_i 786203
Flm_inv_sp 772079
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_CUP 21
Flm_invimage_i 42
Flm_ker 59584
Flm_ker_echelon 169216
Flm_ker_gauss 453652
Flm_ker_gauss_OK 341218
Flm_ker_i 646581
Flm_ker_sp 586997
Flm_lsolve_lower_unit 2244548
Flm_lsolve_lower_unit_2 874370
Flm_lsolve_upper 2273612
Flm_lsolve_upper_1 348259
Flm_lsolve_upper_2 977960
Flm_pivots 217008
Flm_pivots_CUP 61706
Flm_rank 2207
Flm_rsolve_lower_unit 3636044
Flm_rsolve_lower_unit_2 1539213
Flm_rsolve_upper 1912926
Flm_rsolve_upper_1 250959
Flm_rsolve_upper_2 778137
Flm_suppl 42
FlxqM_CUP 1148
FlxqM_CUP_gauss 7329
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 11725
FlxqM_echelon_gauss 6713
FlxqM_gauss 21
FlxqM_gauss_CUP 35
FlxqM_gauss_gen 56
FlxqM_gauss_i 91
FlxqM_gauss_pivot 1211
FlxqM_image 21
FlxqM_indexrank 7
FlxqM_inv 56
FlxqM_invimage 28
FlxqM_invimage_CUP 21
FlxqM_invimage_gen 7
FlxqM_ker 2492
FlxqM_ker_echelon 1750
FlxqM_ker_gen 756
FlxqM_ker_i 2527
FlxqM_lsolve_lower_unit 5222
FlxqM_lsolve_lower_unit_2 2142
FlxqM_lsolve_upper 1596
FlxqM_lsolve_upper_1 392
FlxqM_lsolve_upper_2 644
FlxqM_mul 11713
FlxqM_pivots 28
FlxqM_pivots_CUP 14
FlxqM_rank 28
FlxqM_rsolve_lower_unit 12530
FlxqM_rsolve_lower_unit_2 5579
FlxqM_rsolve_upper 588
FlxqM_rsolve_upper_1 140
FlxqM_rsolve_upper_2 168
FlxqM_suppl 7
FpM_FpC_gauss 14
FpM_FpC_invimage 41795
FpM_deplin 66596
FpM_det 70
FpM_det_gen 49
FpM_gauss 14
FpM_gauss_gen 2907
FpM_gauss_i 47658
FpM_gauss_pivot 129436
FpM_gauss_pivot_gen 115
FpM_image 77586
FpM_indexrank 13307
FpM_init 443296
FpM_intersect 72819
FpM_inv 47630
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 14
FpM_ker 195217
FpM_ker_gen 1696
FpM_ker_i 267567
FpM_rank 7
FpM_suppl 38536
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 1211
FqM_gauss_pivot_gen 28
FqM_image 7
FqM_indexrank 7
FqM_inv 35
FqM_invimage 7
FqM_ker 8225
FqM_ker_gen 21
FqM_ker_i 8239
FqM_mul 320
FqM_rank 7
FqM_suppl 4018
QM_inv 833
RgM_Fp_init 2310
RgM_Hadamard 16772
RgM_RgC_invimage 1484
RgM_det2 3607
RgM_inv_upper 58394
RgM_inv_upper_ind 328784
RgM_invimage 168
RgM_pivots 25761
RgM_solve 381716
RgM_solve_realimag 248918
RgMs_structelim 0
RgMs_structelim_col 119
RgV_deplin 0
ZM_count_0_cols 100251
ZM_det 27734
ZM_det2 7462
ZM_det3 2933
ZM_det_i 28000
ZM_det_slice 52733
ZM_det_worker 52753
ZM_detmult 77649
ZM_gauss 514487
ZM_imagecompl 0
ZM_indeximage 840
ZM_indexrank 15456
ZM_inv 125046
ZM_inv_bnd 126593
ZM_inv_ratlift 9807
ZM_inv_slice 218863
ZM_inv_worker 218949
ZM_ker 48245
ZM_pivots 103994
ZM_pseudoinv 1547
ZM_rank 42530
ZabM_indexrank 1736
ZabM_inv 875
ZabM_ker 574
ZabM_pseudoinv 742
_Fl_add 376354
_Fl_add_OK 2690044
_Fl_addmul 8206466
_Fl_addmul_OK 12918763
_FlxC_ei 14
_copy 28662
_gen_addmul 232137
_gen_get_col 49790
_submul 3566642
approx_0 574888
closemodinvertible 12957
coeff_det 203
col_count_non_zero 609
col_ei_FlxC 14
deplin 273
deplin_aux 126
det 11223
det0 1687
det2 4321
det_bareiss 196
det_develop 301
det_init_max 98
det_simple_gauss 9811
detint 47521
eigen 0
fill_wcol 5850
gauss 322
gauss_get_pivot_NZ 296199
gauss_get_pivot_max 587628
gauss_get_pivot_padic 63371
gauss_pivot 15792
gauss_pivot_ker 8330
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 43799
gen_Gauss 11314
gen_Gauss_pivot 1382
gen_colneg 63
gen_det 84
gen_gerepile_gauss_ker 16
gen_ker 2592
gen_matcolinvimage 63
gen_matcolmul 161000
gen_matcolmul_i 303506
gen_matinv_upper 21
gen_matinv_upper_ind 63
gen_matinvimage 21
gen_matmul 9947
gen_matneg 21
gerepile_gauss 10
gerepile_gauss_ker 6
gerepile_mat 16
get_col 478318
get_pivot_fun 264028
get_suppl 39831
image 1491
image2 7
image_from_pivot 79098
imagecompl 84
imagecompl_aux 84
indexcompl 497145
indeximage0 840
indexrank 14259
indexrank0 60176
indexrank_all 4890
init_gauss 744813
init_indexrank 56126
init_suppl 39831
inverseimage 1617
is_modular_solve 381716
ker 8288
ker_aux 8330
mateigen 63
matimage0 147
matker0 46116
matsolvemod0 43799
mydiv 672
parallelogramarea 51681
perm_complete 9780
rank 196
reducemodinvertible 7
reducemodlll 0
rem_col 99652
rem_singleton 5969
row_count_non_zero 560
split_realimag 510170
split_realimag_col 970706
suppl 91

Generated by: LCOV version 1.11