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 to exceed 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 - modules - algebras.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29115-f22e516b23) Lines: 3501 3527 99.3 %
Date: 2024-03-29 08:06:26 Functions: 305 306 99.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CC_to_HC 98
CM_to_HM 49
C_charpoly 35
C_divl_i 112
C_inv 140
C_norm 42
C_random 182
C_tomatrix 84
C_trace 35
Flm_invimage_init 4454
Flm_invimage_pre 245283
FpM_trace 131162
Fq_mat2col 29939
HC_to_CC 140
HM_to_CM 70
H_add 17745
H_charpoly 98
H_compo 205583
H_divl_i 203
H_inv 259
H_model 462630
H_model0 462630
H_mul 108101
H_neg 98
H_norm 434
H_poleval 77
H_random 980
H_sqr 329
H_tomatrix 2331
H_trace 567
QM_invimZ 14
QM_invimZ_mod 3535
R_charpoly 35
R_norm 42
R_random 4466
R_tomatrix 42
R_trace 35
RgC_contract 15568
RgM_contract 3437
Rgmultable 427
ZM_trace 42764
Z_easyfactor 14682
_mul 41315
_sqr 105025
_tablemul 205394
_tablemul_Fp 263319
_tablemul_ej 99904
_tablemul_ej_Fl 245283
_tablemul_ej_Fp 242039
alC_add_i 756
alC_sub_i 210
alM_add 406
alM_alC_mul_i 54502
alM_mul 25627
alM_sub 126
alMrow_alC_mul_i 119651
algZmultable 10325
alg_centralproj 8633
alg_change_overorder_shallow 1815
alg_complete 0
alg_complete0 273
alg_csa_table 175
alg_cyclic 560
alg_decompose 20500
alg_decompose_from_facto 7475
alg_decompose_total 16902
alg_finite_csa_split 3752
alg_get_absdim 1686565
alg_get_abssplitting 72038
alg_get_aut 112
alg_get_auts 14308
alg_get_b 14329
alg_get_basis 2744
alg_get_center 302961
alg_get_char 6119767
alg_get_degree 1217074
alg_get_dim 225335
alg_get_hasse_f 1988
alg_get_hasse_i 1204
alg_get_invbasis 61881
alg_get_multable 2500461
alg_get_relmultable 216475
alg_get_splitpol 70
alg_get_splittingbasis 4102
alg_get_splittingbasisinv 4102
alg_get_splittingdata 56
alg_get_splittingfield 14902376
alg_get_tracebasis 246427
alg_hasse 385
alg_hilbert 329
alg_idempotent 3038
alg_matrix 84
alg_maximal 133
alg_maximal_primes 805
alg_model 1125365
alg_model0 1125365
alg_ordermodp 6796
alg_pmaximal 2050
alg_quotient 3523
alg_quotient0 21463
alg_subalg 11220
alg_type 5906032
algabstrace 246581
algadd 54845
algalgmul 2345
algalgmul_csa 686
algalgmul_cyc 1659
algalgmultable 13097
algalgmultable_csa 1393
algalgmultable_cyc 11998
algalgtobasis 62280
algalgtobasis_mat 182
algalgtonat 61818
algalgtonat_csa 11375
algalgtonat_cyc 50443
algaut 42
algb 56
algbasis 91
algbasis2mat 294
algbasischarpoly 21189
algbasismul 468027
algbasismultable 225834
algbasismultable_Flm 24902
algbasisrightmultable 36575
algbasissplittingmatrix_csa 4102
algbasistoalg 2926
algbasistoalg_mat 119
algcenter 4886
algcenter_p_projs 3865
algcenter_prad 3865
algcenter_precompute 2050
algchar 112
algcharpoly 21385
algcomputehasse 546
algdegree 322
algdim 1778
algdisc 49
algdisc_i 161
algdivl 875
algdivl_i 1715
algdivl_i2 1001
algdivr 469
algfromcenter 12209
algfromcenterhnf 3865
alggroup 329
alggroupcenter 329
alghasse 252
alghasse_0 777
alghasse_emb 294
alghasse_pr 413
alghassef 336
alghassei 231
algindex 819
alginit 1239
alginv 1323
alginv_i 1512
alginvbasis 63
algisassociative 511
algiscommutative 371
algisdivision 224
algisdivl 126
algisinv 189
algisramified 203
algissemisimple 371
algissimple 280
algissplit 406
alglat_get_primbasis 244314
alglat_get_scalar 289905
alglatadd 7098
alglataddinter 10703
alglatcontains 17528
alglatelement 8778
alglathnf 51072
alglatindex 5271
alglatinter 3605
alglatlefttransporter 1778
alglatmul 45612
alglatrighttransporter 1771
alglatsubset 31556
alglattransporter_i 3535
algleftmultable 6951
algleftmultable_mat 910
algleftordermodp 4775
algmakeintegral 42
algmat2basis 23961
algmat_tomatrix 728
algmatbasis_ei 23884
algmatid 21
algmtK2Z 10325
algmtK2Z_csa 945
algmtK2Z_cyc 9380
algmul 491011
algmultable 245
algnatmultable 966
algnattoalg 12978
algnattoalg_csa 1309
algnattoalg_cyc 11669
algneg 245
algnorm 1253
algpdecompose0 2931
algpdecompose_i 881
algpoleval 17324
algpow 14490
algpradical_i 3865
algprimesubalg 4995
algradical 6342
algramifiedplaces 105
algrandom 19677
algreal_dim 238
algredcharpoly 385
algredcharpoly_i 378
algredtrace 1372
algrelmultable 49
algsimpledec 777
algsimpledec_ss 5093
algsplit 3766
algsplittingdata 56
algsplittingfield 119
algsqr 106257
algsub 1120
algsubalg 70
algtablecenter 19658
algtableinit 4200
algtableinit_i 38003
algtensor 84
algtomatrix 9667
algtrace 2632
algtrace_mat 469
algtracebasis 40770
algtracei 24902
algtracematrix 6412
algtype 224
allauts 819
backtrackfacto 1106
bnfgwgeneric 154
bnrgwsearch 378
change_Rgmultable 49
check_mt 38045
check_mt_noid 38549
check_relmt 175
checkalg 1032414
checkalg_i 903061
checkalgx 1125225
checkhasse 1421
checklat 180992
checklat_i 180992
clean_factor 273
cmp_algebra 11962
colconcat 546
computecnd 273
computesplitting 147
conjclasses_algcenter 847
cyclicrelfrob 2471
cyclicrelfrob0 385
descend 3437
descend_i 3437
dividesmod 49
elementabsmultable 114964
elementabsmultable_Fp 110870
elementabsmultable_Z 225834
elementmultable 1393
extraprime 84
factoredextchinese 833
factoredextchinesetest 1106
findmaximalsubfield 147
frobeniusform 147
genefrob 77
get_phi0 378
get_vecsmall 833
groupelts_algebra 294
hasseconvert 1064
hassecoprime 371
hassereduce 574
image_keep_first 28187
indexfromhasse 819
is_place_emb 329
ismaximalsubfield 427
list_to_regular_rep 294
localcomplete 35
localextdeg 1554
localextdegell 133
localhasse 623
mat2col 28322
matrix_perm 3857
mattocol 51461
mk_C 14
mk_H 14
mk_R 14
nextgen 35
nfgrunwaldwang 462
nfgwkummer 210
nfmakecoprime 1092
normfact_is_partial 140
out_decompose 14873
prepare_lat 10689
prepare_multipliers 10689
primlat 63343
randcol 7
random_pm1 11934
rnfcycaut 273
subcycloindep 77
testsplits 828
try_descend 3857
try_fact 13958
try_split 6482
uispow2 329

Generated by: LCOV version 1.14