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 20068-a012b06) Lines: 2378 2528 94.1 %
Date: 2017-01-16 05:49:55 Functions: 217 232 93.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2_get_col 50950
F2m_F2c_gauss 14
F2m_F2c_invimage 21
F2m_deplin 0
F2m_det 14
F2m_det_sp 28
F2m_gauss 28
F2m_gauss_pivot 23126
F2m_gauss_sp 9219
F2m_image 7
F2m_indexrank 0
F2m_inv 35
F2m_inv_upper_1 7
F2m_inv_upper_1_ind 14
F2m_invimage 0
F2m_invimage_i 7
F2m_ker 1538
F2m_ker_sp 287790
F2m_rank 63
F2m_suppl 7
F2v_find_nonzero 1928852
F2xqM_F2xqC_gauss 28
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_det 7
F2xqM_gauss 14
F2xqM_gauss_gen 77
F2xqM_gauss_pivot 14
F2xqM_image 7
F2xqM_inv 35
F2xqM_invimage 7
F2xqM_ker 21
F2xqM_ker_i 21
F2xqM_mul 7
F2xqM_rank 7
Fl_get_col 3031112
Fl_get_col_OK 405082
Flm_Flc_gauss 21
Flm_Flc_invimage 43870
Flm_deplin 0
Flm_det 69826
Flm_det_sp 69833
Flm_det_sp_OK 1407
Flm_gauss 42
Flm_gauss_pivot 194153
Flm_gauss_sp 726635
Flm_gauss_sp_OK 39171
Flm_image 49
Flm_indexrank 10038
Flm_intersect 0
Flm_inv 485024
Flm_inv_sp 701656
Flm_inv_upper_1 14
Flm_inv_upper_1_ind 28
Flm_invimage 0
Flm_invimage_i 21
Flm_ker 54679
Flm_ker_sp 492556
Flm_ker_sp_OK 484876
Flm_rank 2186
Flm_suppl 42
FlxqM_FlxqC_gauss 14
FlxqM_FlxqC_invimage 21
FlxqM_FlxqC_mul 21
FlxqM_det 7
FlxqM_gauss 7
FlxqM_gauss_gen 56
FlxqM_gauss_pivot 244
FlxqM_image 7
FlxqM_inv 35
FlxqM_invimage 7
FlxqM_ker 552
FlxqM_ker_i 552
FlxqM_mul 142
FlxqM_rank 139
FpM_FpC_gauss 14
FpM_FpC_invimage 39285
FpM_deplin 58034
FpM_det 70
FpM_det_gen 49
FpM_gauss 14
FpM_gauss_gen 2807
FpM_gauss_i 36900
FpM_gauss_pivot 103461
FpM_gauss_pivot_gen 59
FpM_image 73497
FpM_indexrank 21
FpM_init 374616
FpM_intersect 68586
FpM_inv 36872
FpM_inv_upper_1 7
FpM_inv_upper_1_ind 14
FpM_invimage 0
FpM_invimage_i 14
FpM_ker 176641
FpM_ker_gen 1647
FpM_ker_i 235683
FpM_rank 7
FpM_suppl 29929
FqM_FqC_gauss 14
FqM_FqC_invimage 21
FqM_FqC_mul 21
FqM_deplin 0
FqM_det 7
FqM_gauss 7
FqM_gauss_gen 56
FqM_gauss_pivot 162
FqM_gauss_pivot_gen 64
FqM_image 7
FqM_inv 35
FqM_invimage 7
FqM_ker 1254
FqM_ker_gen 15
FqM_ker_i 1254
FqM_mul 320
FqM_rank 57
FqM_suppl 574
QM_inv 6426
RgM_Fp_init 2128
RgM_Hadamard 16716
RgM_RgC_invimage 1456
RgM_det2 2486
RgM_inv_upper 6013
RgM_inv_upper_ind 16689
RgM_invimage 126
RgM_pivots 15490
RgM_solve 338695
RgM_solve_realimag 238803
RgMs_structelim 0
RgMs_structelim_col 117
RgV_deplin 0
ZM_count_0_cols 99465
ZM_det 27685
ZM_det2 7448
ZM_det3 2933
ZM_det_i 27916
ZM_detmult 7623
ZM_gauss 470870
ZM_imagecompl 0
ZM_indeximage 840
ZM_indexrank 3654
ZM_inv 102520
ZM_inv_ratlift 6713
ZM_ker_ratlift 1631
ZM_pivots 102690
ZM_rank 34018
_Fl_add 3168853
_Fl_add_OK 78784422
_Fl_addmul 143588176
_Fl_addmul_OK 250622157
_copy 28662
_gen_addmul 107693
_gen_get_col 13492
_submul 4378983
approx_0 657593
closemodinvertible 6398
coeff_det 203
col_count_non_zero 609
deplin 189
deplin_aux 126
det 11125
det0 1617
det2 3280
det_bareiss 196
det_develop 301
det_init_max 98
det_simple_gauss 9863
detint 42
eigen 0
fill_wcol 5490
gauss 294
gauss_get_pivot_NZ 292181
gauss_get_pivot_max 661737
gauss_get_pivot_padic 63091
gauss_pivot 7175
gauss_pivot_ker 8050
gaussmodulo 0
gaussmodulo2 0
gaussmoduloall 49
gen_Gauss 4235
gen_Gauss_pivot 381
gen_colneg 63
gen_det 84
gen_gerepile_gauss_ker 16
gen_ker 2319
gen_matcolinvimage 63
gen_matcolmul 20986
gen_matcolmul_i 38599
gen_matinv_upper 21
gen_matinv_upper_ind 63
gen_matinvimage 21
gen_matmul 1496
gen_matneg 21
gerepile_gauss 89
gerepile_gauss_ker 6
gerepile_mat 16
get_col 488616
get_pivot_fun 273219
get_suppl 30118
image 2926
image2 7
image_from_pivot 76444
imagecompl 84
imagecompl_aux 84
indeximage0 840
indexrank 4158
indexrank0 20423
indexrank_all 2552
init_gauss 719190
init_indexrank 18711
init_suppl 30118
inverseimage 1568
is_modular_solve 338695
ker 7966
ker_aux 8050
keri 246
mateigen 63
matimage0 119
matker0 147
matsolvemod0 49
mydiv 672
parallelogramarea 51464
perm_complete 5104
rank 154
reducemodinvertible 7
reducemodlll 0
rem_col 93492
rem_singleton 5607
row_count_non_zero 560
split_realimag 488967
split_realimag_col 988438
suppl 70

Generated by: LCOV version 1.11