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 20459-9710128) Lines: 3053 3359 90.9 %
Date: 2017-04-27 05:33:52 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 43824
F2m_F2c_gauss 12
F2m_F2c_invimage 18
F2m_deplin 0
F2m_det 12
F2m_det_sp 24
F2m_gauss 24
F2m_gauss_pivot 19824
F2m_gauss_sp 7950
F2m_image 6
F2m_indexrank 6
F2m_inv 30
F2m_inv_upper_1 6
F2m_inv_upper_1_ind 12
F2m_invimage 0
F2m_invimage_i 6
F2m_ker 90
F2m_ker_sp 245184
F2m_rank 54
F2m_suppl 6
F2v_find_nonzero 1652215
F2xqM_F2xqC_gauss 24
F2xqM_F2xqC_invimage 18
F2xqM_F2xqC_mul 18
F2xqM_deplin 12
F2xqM_det 6
F2xqM_gauss 12
F2xqM_gauss_gen 66
F2xqM_gauss_pivot 24
F2xqM_image 6
F2xqM_indexrank 6
F2xqM_inv 30
F2xqM_invimage 6
F2xqM_ker 18
F2xqM_ker_i 30
F2xqM_mul 6
F2xqM_rank 6
F2xqM_suppl 6
Fl_get_col 1589550
Fl_get_col_OK 231714
FlkM_inv 0
FlkM_ker 0
FlmV_recover 0
Flm_CUP 627726
Flm_CUP_gauss 728880
Flm_Flc_gauss 18
Flm_Flc_invimage 33642
Flm_deplin 0
Flm_deplin_echelon 16062
Flm_det 0
Flm_det_CUP 22200
Flm_det_gauss 30462
Flm_det_gauss_OK 12
Flm_det_i 52662
Flm_det_sp 52662
Flm_echelon 569754
Flm_echelon_gauss 336396
Flm_gauss 48
Flm_gauss_CUP 90636
Flm_gauss_pivot 128057
Flm_gauss_sp 495018
Flm_gauss_sp_OK 28608
Flm_image 54
Flm_indexrank 8598
Flm_intersect 0
Flm_inv 12168
Flm_inv_i 561486
Flm_inv_sp 549318
Flm_inv_upper_1 12
Flm_inv_upper_1_ind 24
Flm_invimage 0
Flm_invimage_CUP 18
Flm_invimage_i 36
Flm_ker 42407
Flm_ker_echelon 89058
Flm_ker_gauss 396730
Flm_ker_gauss_OK 294862
Flm_ker_i 501850
Flm_ker_sp 459443
Flm_lsolve_lower_unit 1253778
Flm_lsolve_lower_unit_2 529332
Flm_lsolve_upper 1275720
Flm_lsolve_upper_1 198252
Flm_lsolve_upper_2 555210
Flm_pivots 172445
Flm_pivots_CUP 44388
Flm_rank 1900
Flm_rsolve_lower_unit 2045754
Flm_rsolve_lower_unit_2 922398
Flm_rsolve_upper 1033290
Flm_rsolve_upper_1 136146
Flm_rsolve_upper_2 425814
Flm_suppl 36
FlxqM_CUP 984
FlxqM_CUP_gauss 4230
FlxqM_FlxqC_gauss 12
FlxqM_FlxqC_invimage 18
FlxqM_FlxqC_mul 30
FlxqM_deplin 30
FlxqM_deplin_echelon 18
FlxqM_det 18
FlxqM_det_CUP 12
FlxqM_det_gen 6
FlxqM_echelon 6876
FlxqM_echelon_gauss 3702
FlxqM_gauss 18
FlxqM_gauss_CUP 30
FlxqM_gauss_gen 48
FlxqM_gauss_i 78
FlxqM_gauss_pivot 120
FlxqM_image 18
FlxqM_indexrank 6
FlxqM_inv 48
FlxqM_invimage 24
FlxqM_invimage_CUP 18
FlxqM_invimage_gen 6
FlxqM_ker 492
FlxqM_ker_echelon 402
FlxqM_ker_gen 102
FlxqM_ker_i 522
FlxqM_lsolve_lower_unit 2814
FlxqM_lsolve_lower_unit_2 1068
FlxqM_lsolve_upper 1368
FlxqM_lsolve_upper_1 336
FlxqM_lsolve_upper_2 552
FlxqM_mul 7386
FlxqM_pivots 36
FlxqM_pivots_CUP 12
FlxqM_rank 138
FlxqM_rsolve_lower_unit 8142
FlxqM_rsolve_lower_unit_2 3744
FlxqM_rsolve_upper 504
FlxqM_rsolve_upper_1 120
FlxqM_rsolve_upper_2 144
FlxqM_suppl 6
FpM_FpC_gauss 12
FpM_FpC_invimage 28356
FpM_deplin 44424
FpM_det 60
FpM_det_gen 42
FpM_gauss 12
FpM_gauss_gen 2410
FpM_gauss_i 34426
FpM_gauss_pivot 94818
FpM_gauss_pivot_gen 48
FpM_image 68916
FpM_indexrank 24
FpM_init 318430
FpM_intersect 47736
FpM_inv 34402
FpM_inv_upper_1 6
FpM_inv_upper_1_ind 12
FpM_invimage 0
FpM_invimage_i 12
FpM_ker 145122
FpM_ker_gen 774
FpM_ker_i 190410
FpM_rank 6
FpM_suppl 25872
FpVM_ratlift 0
FqM_FqC_gauss 12
FqM_FqC_invimage 18
FqM_FqC_mul 18
FqM_deplin 12
FqM_det 6
FqM_gauss 6
FqM_gauss_gen 48
FqM_gauss_pivot 150
FqM_gauss_pivot_gen 66
FqM_image 6
FqM_indexrank 6
FqM_inv 30
FqM_invimage 6
FqM_ker 1074
FqM_ker_gen 24
FqM_ker_i 1086
FqM_mul 270
FqM_rank 48
FqM_suppl 498
QM_inv 762
RgM_Fp_init 1980
RgM_Hadamard 14328
RgM_RgC_invimage 1248
RgM_det2 2052
RgM_inv_upper 5076
RgM_inv_upper_ind 14064
RgM_invimage 144
RgM_pivots 13068
RgM_solve 268446
RgM_solve_realimag 183138
RgMs_structelim 0
RgMs_structelim_col 110
RgV_deplin 0
ZM_count_0_cols 85027
ZM_det 23730
ZM_det2 6384
ZM_det3 2514
ZM_det_i 23928
ZM_detmult 7740
ZM_gauss 365322
ZM_imagecompl 0
ZM_indeximage 720
ZM_indexrank 3132
ZM_inv 88050
ZM_inv_ratlift 5754
ZM_ker 40974
ZM_pivots 87787
ZM_pseudoinv 0
ZM_rank 29148
ZabM_indexrank 0
ZabM_inv 0
ZabM_ker 0
ZabM_pseudoinv 0
_Fl_add 390924
_Fl_add_OK 2947914
_Fl_addmul 6171540
_Fl_addmul_OK 14079442
_FlxC_ei 12
_copy 28662
_gen_addmul 120980
_gen_get_col 11572
_submul 3328188
approx_0 476310
closemodinvertible 5292
coeff_det 174
col_count_non_zero 522
col_ei_FlxC 12
deplin 234
deplin_aux 108
det 9558
det0 1410
det2 2688
det_bareiss 168
det_develop 258
det_init_max 84
det_simple_gauss 8406
detint 36
eigen 0
fill_wcol 4813
gauss 276
gauss_get_pivot_NZ 248933
gauss_get_pivot_max 479862
gauss_get_pivot_padic 54078
gauss_pivot 6150
gauss_pivot_ker 6900
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 42
gen_Gauss 3634
gen_Gauss_pivot 258
gen_colneg 54
gen_det 72
gen_gerepile_gauss_ker 15
gen_ker 1002
gen_matcolinvimage 54
gen_matcolmul 18000
gen_matcolmul_i 37482
gen_matinv_upper 18
gen_matinv_upper_ind 54
gen_matinvimage 18
gen_matmul 1908
gen_matneg 18
gerepile_gauss 45
gerepile_gauss_ker 6
gerepile_mat 15
get_col 396371
get_pivot_fun 212469
get_suppl 26052
image 2532
image2 6
image_from_pivot 71466
imagecompl 72
imagecompl_aux 72
indexcompl 299130
indeximage0 720
indexrank 3582
indexrank0 17658
indexrank_all 2340
init_gauss 556497
init_indexrank 16038
init_suppl 26052
inverseimage 1380
is_modular_solve 268446
ker 6864
ker_aux 6900
mateigen 54
matimage0 126
matker0 39528
matsolvemod0 42
mydiv 576
parallelogramarea 44112
perm_complete 4680
rank 168
reducemodinvertible 6
reducemodlll 0
rem_col 81443
rem_singleton 4923
row_count_non_zero 480
split_realimag 376014
split_realimag_col 738432
suppl 78

Generated by: LCOV version 1.11