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.18.1 lcov report (development 29877-9124a6ce27) Lines: 3917 3943 99.3 %
Date: 2025-01-18 09:08:44 Functions: 342 343 99.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
alg_complete 0
randcol 7
QM_invimZ 14
algmatid 21
mk_C 21
alg_hilbert_asquare 28
algmodpr_mat 28
mk_R 28
C_charpoly 35
C_trace 35
R_charpoly 35
R_trace 35
C_norm 42
R_norm 42
R_tomatrix 42
alg_quatramif 42
algmakeintegral 42
mk_H 42
CM_to_HM 49
change_Rgmultable 56
algaut 63
HM_to_CM 70
algrelmultable 70
localcomplete 70
nextgen 70
H_invol 77
C_tomatrix 84
H_poleval 84
alg_get_splittingdata 84
alginvbasis 84
algnewprec 84
algnewprec_shallow 84
algsplittingdata 84
algsubalg 84
algtensor 84
extraprime 84
algb 91
algisquatalg 91
CC_to_HC 98
H_charpoly 98
H_neg 98
C_divl_i 112
algchar 112
algbasistoalg_mat 119
genefrob 119
subcycloindep 119
alM_sub 126
alg_matrix 126
algbasistoquat 126
algisdivl 126
dividesmod 126
C_inv 140
HC_to_CC 140
algbasis 154
normfact_is_partial 154
algsplittingfield 161
algramifiedplaces 168
localextdegell 168
C_random 182
algalgtobasis_mat 182
alg_maximal 189
algisinv 189
bnfgwgeneric 196
H_divl_i 203
alC_sub_i 210
computesplitting 231
findmaximalsubfield 231
frobeniusform 231
algneg 245
alghassei 252
H_inv 259
alg_csa_table 259
algreal_dim 259
check_relmt 259
nfgwkummer 259
algquattobasis 266
algisdivision 287
alg_get_splitpol 294
algbasis2mat 294
alginvol 294
groupelts_algebra 294
list_to_regular_rep 294
algissimple 301
algmodprlift 301
algmultable 308
H_sqr 329
alggroup 329
alggroupcenter 329
alghasse 336
alghassef 357
alg_complete0 364
algdisc 364
clean_factor 364
computecnd 364
rnfcycaut 364
uispow2 371
algiscommutative 392
algissemisimple 392
alM_add 406
alghasse_emb 427
bnrgwsearch 427
get_phi0 427
H_norm 434
hassecoprime 462
is_place_emb 462
algdivr 469
algtrace_mat 469
Rgmultable 476
alg_hasse 476
cyclicrelfrob0 483
algmodprlift_i 511
algdisc_i 532
algisassociative 532
algredcharpoly_i 546
eichlerprimepower 546
algredcharpoly 553
nfgrunwaldwang 553
H_trace 567
alg_hilbert 567
ismaximalsubfield 588
algdegree 679
algalgmul_csa 686
algmat_tomatrix 728
colconcat 728
alC_add_i 756
hassereduce 756
algcomputehasse 826
alg_cyclic 840
conjclasses_algcenter 847
algdivl 889
alg_insert_quatconj 896
algleftmultable_mat 910
testsplits 947
localhasse 973
H_random 980
algdivl_i2 1015
get_vecsmall 1015
alg_get_aut 1029
algsub 1120
alg_is_asq 1148
allauts 1190
alg_maximal_primes 1225
factoredextchinese 1232
algnorm 1309
alginv 1323
algpdecompose_i 1336
hasseconvert 1337
algisramified 1386
algnatmultable 1421
algredtrace 1470
algmtK2Z_csa 1491
alginv_i 1512
nfmakecoprime 1554
localextdeg 1589
backtrackfacto 1596
factoredextchinesetest 1596
alghasse_pr 1652
algissplit 1652
algalgmul_cyc 1659
RgC_col2mat 1708
algmodpr_get_proj 1708
algmodpr_integral 1708
algmodpr_get_ff 1715
algdivl_i 1729
algmodpr_get_tau 1729
algmodpr_i 1729
alginit 1750
alglatrighttransporter 1771
alglatlefttransporter 1778
alg_get_hasse_i 1785
algmodpr 1841
algnattoalg_csa 1925
algalgmultable_csa 1960
elementmultable 1960
checkhasse 1974
algeichlerbasis 2100
checkalgmodpr 2135
checkalgmodpr_i 2135
alghasse_0 2149
algindex 2191
algmodpr_get_m 2219
indexfromhasse 2219
algtype 2254
algalgmul 2345
H_tomatrix 2415
mat_algeltfromnf 2492
eichleridempotent 2499
eichlerprimepower_i 2499
algtrace 2681
algsimpledec 2730
algmodprinit 2793
alg_pmaximal 2841
algcenter_precompute 2841
alg_change_overorder_shallow 2914
algmodpr_get_lift 3003
cyclicrelfrob 3059
alg_get_invol 3152
alg_get_basis 3276
algbasistoalg 3388
QM_invimZ_mod 3535
alglattransporter_i 3535
algsplit 3766
algmodpr_get_T 3801
matrix_perm 3857
alg_get_hasse_f 3948
algmodpr_get_p 3948
algmodpr_get_pr 3948
alglatinter 4109
RgM_contract 4165
descend 4165
descend_i 4165
algpdecompose0 4177
alg_get_splittingbasis 4347
alg_get_splittingbasisinv 4347
algbasissplittingmatrix_csa 4347
R_random 4466
try_descend 4585
algmodpr_get_k 5005
alg_idempotent 5047
algeltfromnf 5117
alglatindex 5271
algcenter_p_projs 5727
algcenter_prad 5727
algeltfromnf_hnf 5727
algpradical_i 5727
algtableinit 6209
algdim 6216
alg_finite_csa_split 6510
algleftordermodp 7162
Flm_invimage_init 7492
alglatadd 7588
algprimesubalg 8579
algsimpledec_ss 8684
alglatelement 8778
alg_decompose_from_facto 9610
alg_quotient 11251
alg_centralproj 11601
prepare_lat 11683
prepare_multipliers 11683
alglataddinter 11697
algcenter 11795
algmtK2Z_cyc 12656
alg_ordermodp 12662
try_split 13057
algradical 13377
algtracematrix 13818
algZmultable 14147
algmtK2Z 14147
alg_subalg 14167
cmp_algebra 14278
random_pm1 14867
Z_easyfactor 15200
algnattoalg_cyc 15344
algalgmultable_cyc 15421
algalgtonat_csa 15554
algalgmultable 17066
algnattoalg 17269
alglatcontains 17528
H_add 17745
try_fact 17808
alg_get_b 18095
RgC_contract 18746
alg_get_auts 18907
out_decompose 19143
algrandom 20104
algpow 21091
algleftmultable 22099
alg_decompose_total 23041
algmatbasis_ei 23884
algmat2basis 23961
algtomatrix 25109
alM_mul 25627
alg_decompose 27381
mat2col 28322
algpoleval 29014
algtablecenter 31411
algbasischarpoly 31782
algcharpoly 32013
algeltfromnf_i 33069
alglatsubset 33495
alg_quotient0 35127
image_keep_first 36895
algbasisrightmultable 41160
algbasismultable_Flm 43866
algtracei 43866
alglatmul 45612
RgM_mat2col 49343
_mul 50072
alglathnf 53487
alM_alC_mul_i 54502
algadd 54999
algtableinit_i 56623
check_mt 56665
check_mt_noid 57190
algtracebasis 60944
ZM_trace 62210
primlat 64351
algalgtonat_cyc 67796
mattocol 79006
algalgtonat 83350
alg_get_invbasis 83434
algalgtobasis 85275
alg_get_abssplitting 96622
H_mul 108129
_tablemul_ej 111811
alMrow_alC_mul_i 119651
_sqr 121678
algsqr 124065
elementabsmultable 152246
checklat 186858
checklat_i 186858
elementabsmultable_Fp 195020
H_compo 205639
FpM_trace 207506
_tablemul_ej_Fp 242039
alglat_get_primbasis 251188
_tablemul_Fp 294206
alglat_get_scalar 296779
algbasismultable 347266
elementabsmultable_Z 347266
alg_get_relmultable 388052
alg_get_dim 404332
H_model 462861
H_model0 462861
_tablemul 521724
alg_get_center 526093
Flm_invimage_pre 545409
_tablemul_ej_Fl 545409
alg_get_tracebasis 607648
algabstrace 607802
algbasismul 815244
algmul 819174
checkalg_i 1391316
checkalg 1518653
checkalgx 1879751
alg_model 1879919
alg_model0 1879919
alg_get_degree 2467008
alg_get_absdim 2532309
alg_get_multable 3682384
alg_type 9865216
alg_get_char 11444400
alg_get_splittingfield 25449578

Generated by: LCOV version 1.16