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 20443-183d202) Lines: 3053 3359 90.9 %
Date: 2017-03-27 05:17:48 Functions: 278 301 92.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 36520
F2m_F2c_gauss 10
F2m_F2c_invimage 15
F2m_deplin 0
F2m_det 10
F2m_det_sp 20
F2m_gauss 20
F2m_gauss_pivot 16520
F2m_gauss_sp 6625
F2m_image 5
F2m_indexrank 5
F2m_inv 25
F2m_inv_upper_1 5
F2m_inv_upper_1_ind 10
F2m_invimage 0
F2m_invimage_i 5
F2m_ker 80
F2m_ker_sp 204320
F2m_rank 45
F2m_suppl 5
F2v_find_nonzero 1361435
F2xqM_F2xqC_gauss 20
F2xqM_F2xqC_invimage 15
F2xqM_F2xqC_mul 15
F2xqM_deplin 10
F2xqM_det 5
F2xqM_gauss 10
F2xqM_gauss_gen 55
F2xqM_gauss_pivot 20
F2xqM_image 5
F2xqM_indexrank 5
F2xqM_inv 25
F2xqM_invimage 5
F2xqM_ker 15
F2xqM_ker_i 25
F2xqM_mul 5
F2xqM_rank 5
F2xqM_suppl 5
Fl_get_col 1324625
Fl_get_col_OK 193095
FlkM_inv 0
FlkM_ker 0
FlmV_recover 0
Flm_CUP 523105
Flm_CUP_gauss 607400
Flm_Flc_gauss 15
Flm_Flc_invimage 28035
Flm_deplin 0
Flm_deplin_echelon 13385
Flm_det 0
Flm_det_CUP 18500
Flm_det_gauss 25385
Flm_det_gauss_OK 10
Flm_det_i 43885
Flm_det_sp 43885
Flm_echelon 474795
Flm_echelon_gauss 280330
Flm_gauss 40
Flm_gauss_CUP 75530
Flm_gauss_pivot 106711
Flm_gauss_sp 412515
Flm_gauss_sp_OK 23840
Flm_image 45
Flm_indexrank 7165
Flm_intersect 0
Flm_inv 10140
Flm_inv_i 467905
Flm_inv_sp 457765
Flm_inv_upper_1 10
Flm_inv_upper_1_ind 20
Flm_invimage 0
Flm_invimage_CUP 15
Flm_invimage_i 30
Flm_ker 35340
Flm_ker_echelon 74215
Flm_ker_gauss 330606
Flm_ker_gauss_OK 245716
Flm_ker_i 418206
Flm_ker_sp 382866
Flm_lsolve_lower_unit 1044815
Flm_lsolve_lower_unit_2 441110
Flm_lsolve_upper 1063100
Flm_lsolve_upper_1 165210
Flm_lsolve_upper_2 462675
Flm_pivots 143701
Flm_pivots_CUP 36990
Flm_rank 1576
Flm_rsolve_lower_unit 1704795
Flm_rsolve_lower_unit_2 768665
Flm_rsolve_upper 861075
Flm_rsolve_upper_1 113455
Flm_rsolve_upper_2 354845
Flm_suppl 30
FlxqM_CUP 820
FlxqM_CUP_gauss 3525
FlxqM_FlxqC_gauss 10
FlxqM_FlxqC_invimage 15
FlxqM_FlxqC_mul 25
FlxqM_deplin 25
FlxqM_deplin_echelon 15
FlxqM_det 15
FlxqM_det_CUP 10
FlxqM_det_gen 5
FlxqM_echelon 5730
FlxqM_echelon_gauss 3085
FlxqM_gauss 15
FlxqM_gauss_CUP 25
FlxqM_gauss_gen 40
FlxqM_gauss_i 65
FlxqM_gauss_pivot 100
FlxqM_image 15
FlxqM_indexrank 5
FlxqM_inv 40
FlxqM_invimage 20
FlxqM_invimage_CUP 15
FlxqM_invimage_gen 5
FlxqM_ker 410
FlxqM_ker_echelon 335
FlxqM_ker_gen 85
FlxqM_ker_i 435
FlxqM_lsolve_lower_unit 2345
FlxqM_lsolve_lower_unit_2 890
FlxqM_lsolve_upper 1140
FlxqM_lsolve_upper_1 280
FlxqM_lsolve_upper_2 460
FlxqM_mul 6155
FlxqM_pivots 30
FlxqM_pivots_CUP 10
FlxqM_rank 115
FlxqM_rsolve_lower_unit 6785
FlxqM_rsolve_lower_unit_2 3120
FlxqM_rsolve_upper 420
FlxqM_rsolve_upper_1 100
FlxqM_rsolve_upper_2 120
FlxqM_suppl 5
FpM_FpC_gauss 10
FpM_FpC_invimage 23630
FpM_deplin 37020
FpM_det 50
FpM_det_gen 35
FpM_gauss 10
FpM_gauss_gen 1980
FpM_gauss_i 28660
FpM_gauss_pivot 79015
FpM_gauss_pivot_gen 40
FpM_image 57430
FpM_indexrank 20
FpM_init 265330
FpM_intersect 39780
FpM_inv 28640
FpM_inv_upper_1 5
FpM_inv_upper_1_ind 10
FpM_invimage 0
FpM_invimage_i 10
FpM_ker 120935
FpM_ker_gen 645
FpM_ker_i 158675
FpM_rank 5
FpM_suppl 21560
FpVM_ratlift 0
FqM_FqC_gauss 10
FqM_FqC_invimage 15
FqM_FqC_mul 15
FqM_deplin 10
FqM_det 5
FqM_gauss 5
FqM_gauss_gen 40
FqM_gauss_pivot 125
FqM_gauss_pivot_gen 55
FqM_image 5
FqM_indexrank 5
FqM_inv 25
FqM_invimage 5
FqM_ker 895
FqM_ker_gen 20
FqM_ker_i 905
FqM_mul 225
FqM_rank 40
FqM_suppl 415
QM_inv 635
RgM_Fp_init 1650
RgM_Hadamard 11940
RgM_RgC_invimage 1040
RgM_det2 1710
RgM_inv_upper 4230
RgM_inv_upper_ind 11720
RgM_invimage 120
RgM_pivots 10890
RgM_solve 223705
RgM_solve_realimag 152615
RgMs_structelim 0
RgMs_structelim_col 85
RgV_deplin 0
ZM_count_0_cols 70860
ZM_det 19775
ZM_det2 5320
ZM_det3 2095
ZM_det_i 19940
ZM_detmult 6450
ZM_gauss 304435
ZM_imagecompl 0
ZM_indeximage 600
ZM_indexrank 2610
ZM_inv 73375
ZM_inv_ratlift 4795
ZM_ker 34145
ZM_pivots 73160
ZM_pseudoinv 0
ZM_rank 24290
ZabM_indexrank 0
ZabM_inv 0
ZabM_ker 0
ZabM_pseudoinv 0
_Fl_add 325770
_Fl_add_OK 2456595
_Fl_addmul 5142950
_Fl_addmul_OK 11732862
_FlxC_ei 10
_copy 23885
_gen_addmul 97925
_gen_get_col 9520
_submul 2773495
approx_0 396925
closemodinvertible 4410
coeff_det 145
col_count_non_zero 435
col_ei_FlxC 10
deplin 195
deplin_aux 90
det 7965
det0 1175
det2 2240
det_bareiss 140
det_develop 215
det_init_max 70
det_simple_gauss 7005
detint 30
eigen 0
fill_wcol 3925
gauss 230
gauss_get_pivot_NZ 207440
gauss_get_pivot_max 399885
gauss_get_pivot_padic 45065
gauss_pivot 5125
gauss_pivot_ker 5750
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 35
gen_Gauss 3000
gen_Gauss_pivot 215
gen_colneg 45
gen_det 60
gen_gerepile_gauss_ker 12
gen_ker 835
gen_matcolinvimage 45
gen_matcolmul 15000
gen_matcolmul_i 31235
gen_matinv_upper 15
gen_matinv_upper_ind 45
gen_matinvimage 15
gen_matmul 1590
gen_matneg 15
gerepile_gauss 37
gerepile_gauss_ker 5
gerepile_mat 12
get_col 330305
get_pivot_fun 177055
get_suppl 21710
image 2110
image2 5
image_from_pivot 59555
imagecompl 60
imagecompl_aux 60
indexcompl 249275
indeximage0 600
indexrank 2985
indexrank0 14715
indexrank_all 1950
init_gauss 463745
init_indexrank 13365
init_suppl 21710
inverseimage 1150
is_modular_solve 223705
ker 5720
ker_aux 5750
mateigen 45
matimage0 105
matker0 32940
matsolvemod0 35
mydiv 480
parallelogramarea 36760
perm_complete 3900
rank 140
reducemodinvertible 5
reducemodlll 0
rem_col 66975
rem_singleton 4010
row_count_non_zero 400
split_realimag 313345
split_realimag_col 615360
suppl 65

Generated by: LCOV version 1.11