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 30067-63f6f11d79) Lines: 3972 3998 99.3 %
Date: 2025-03-10 09:19:41 Functions: 346 347 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
algmakeintegral 42
CM_to_HM 49
change_Rgmultable 56
mk_H 56
algaut 63
HM_to_CM 70
algrelmultable 70
alg_quatramif 77
algrightmultable 77
localcomplete 77
nextgen 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
CC_to_HC 98
H_charpoly 98
H_invol 98
H_neg 98
algisquatalg 98
C_divl_i 112
algchar 112
algskolemnoether 112
algbasistoalg_mat 119
alM_sub 126
algbasistoquat 126
algisdivl 126
C_inv 140
HC_to_CC 140
dividesmod 140
genefrob 140
subcycloindep 140
alg_matrix 147
algbasis 154
algissimilar_i 154
algsplittingfield 161
normfact_is_partial 168
localextdegell 175
C_random 182
algalgtobasis_mat 182
H_divl_i 203
alC_sub_i 210
bnfgwgeneric 210
alg_maximal 224
algisisom 245
algneg 245
H_inv 259
algreal_dim 259
alghassei 266
computesplitting 266
findmaximalsubfield 266
frobeniusform 266
algquattobasis 280
algisdivision 287
alg_csa_table 294
algbasis2mat 294
check_relmt 294
groupelts_algebra 294
list_to_regular_rep 294
nfgwkummer 294
algissimple 301
algmodprlift 301
alginvol 308
algmultable 308
alg_get_splitpol 315
H_sqr 329
alggroup 329
alggroupcenter 329
alghasse 343
algdisc 364
alghassef 364
algramifiedplaces 364
uispow2 385
algiscommutative 392
algissemisimple 392
alM_add 406
alg_complete0 413
clean_factor 413
computecnd 413
rnfcycaut 413
H_norm 434
bnrgwsearch 441
get_phi0 441
algdivr 469
algtrace_mat 469
Rgmultable 476
alghasse_emb 497
algmodprlift_i 511
hassecoprime 511
alg_hasse 525
algisassociative 532
algredcharpoly_i 546
cyclicrelfrob0 546
eichlerprimepower 546
is_place_emb 546
algredcharpoly 553
H_trace 567
algdisc_i 567
nfgrunwaldwang 602
ismaximalsubfield 630
alg_hilbert 658
algdegree 679
algalgmul_csa 686
algmat_tomatrix 728
alC_add_i 756
colconcat 826
conjclasses_algcenter 847
hassereduce 854
algdivl 889
testsplits 909
algleftmultable_mat 910
algcomputehasse 973
H_random 980
alg_cyclic 987
algdivl_i2 1015
alg_insert_quatconj 1036
get_vecsmall 1113
localhasse 1120
algsub 1127
alg_get_aut 1169
alg_is_asq 1183
algnorm 1309
alginv 1330
algisramified 1386
allauts 1386
factoredextchinese 1414
alg_maximal_primes 1442
hasseconvert 1484
algredtrace 1512
algpdecompose_i 1605
localextdeg 1624
algissplit 1652
algnatmultable 1652
algalgmul_cyc 1659
algisinv 1659
algmtK2Z_csa 1687
RgC_col2mat 1708
algmodpr_get_proj 1708
algmodpr_integral 1708
algmodpr_get_ff 1715
algmodpr_get_tau 1729
algmodpr_i 1729
alglatrighttransporter 1771
alglatlefttransporter 1778
alghasse_pr 1799
nfmakecoprime 1799
backtrackfacto 1820
factoredextchinesetest 1827
algmodpr 1841
alginit 1995
algeichlerbasis 2100
algnattoalg_csa 2135
checkalgmodpr 2135
checkalgmodpr_i 2135
algalgmultable_csa 2170
elementmultable 2170
algindex 2191
alg_get_hasse_i 2198
algmodpr_get_m 2219
indexfromhasse 2219
algtype 2254
checkhasse 2254
algalgmul 2345
alghasse_0 2380
H_tomatrix 2457
mat_algeltfromnf 2492
eichleridempotent 2499
eichlerprimepower_i 2499
algtrace 2702
algsimpledec 2730
algmodprinit 2793
alginv_i 2989
algmodpr_get_lift 3003
algdivl_i 3199
alg_pmaximal 3271
algcenter_precompute 3271
alg_get_basis 3297
cyclicrelfrob 3310
algbasistoalg 3409
alg_change_overorder_shallow 3529
QM_invimZ_mod 3535
alglattransporter_i 3535
algsplit 3766
alg_get_invol 3774
algmodpr_get_T 3801
matrix_perm 3857
algmodpr_get_p 3948
algmodpr_get_pr 3948
alglatinter 4109
RgM_contract 4165
descend 4165
descend_i 4165
alg_get_splittingbasis 4347
alg_get_splittingbasisinv 4347
algbasissplittingmatrix_csa 4347
R_random 4466
alg_get_hasse_f 4550
try_descend 4592
algpdecompose0 4876
algmodpr_get_k 5005
alg_idempotent 5047
algeltfromnf 5138
alglatindex 5271
algdim 6216
algtableinit 6223
alg_finite_csa_split 6510
algcenter_p_projs 6772
algcenter_prad 6772
algeltfromnf_hnf 6772
algpradical_i 6772
alglatadd 7588
algleftordermodp 8604
alglatelement 8778
Flm_invimage_init 8913
algprimesubalg 9573
algsimpledec_ss 9678
alg_decompose_from_facto 9928
prepare_lat 11683
prepare_multipliers 11683
alglataddinter 11697
algcenter 11795
Z_easyfactor 12126
alg_quotient 12235
alg_centralproj 12516
try_split 12733
algmtK2Z_cyc 14399
alg_ordermodp 14406
alg_subalg 14485
cmp_algebra 14603
algradical 14760
random_pm1 15199
algtracematrix 15236
algZmultable 16086
algmtK2Z 16086
algalgtonat_csa 16163
algnattoalg_cyc 17094
algalgmultable_cyc 17164
alglatcontains 17528
H_add 17745
try_fact 18237
RgC_contract 18746
algalgmultable 19005
algnattoalg 19229
out_decompose 19779
alg_get_b 19992
algrandom 20104
alg_get_auts 20937
algpow 22520
algleftmultable 23660
algmatbasis_ei 23884
alg_decompose_total 23953
algmat2basis 23961
algtomatrix 25109
alM_mul 25627
alg_decompose 28293
mat2col 28322
algpoleval 29395
algbasischarpoly 31929
algcharpoly 32118
algtablecenter 32999
alglatsubset 33495
algeltfromnf_i 36345
alg_quotient0 37977
image_keep_first 39079
algbasisrightmultable 41265
alglatmul 45612
RgM_mat2col 49343
algbasismultable_Flm 51360
algtracei 51360
_mul 52177
alglathnf 53487
alM_alC_mul_i 54502
algadd 54999
algtableinit_i 59805
check_mt 59847
check_mt_noid 60372
primlat 64351
algtracebasis 64972
ZM_trace 69734
algalgtonat_cyc 70491
algalgtonat 86654
alg_get_invbasis 86738
algalgtobasis 88656
mattocol 93201
alg_get_abssplitting 102957
H_mul 108129
_tablemul_ej 111811
alMrow_alC_mul_i 119651
_sqr 124662
algsqr 127056
elementabsmultable 159050
checklat 186858
checklat_i 186858
H_compo 205639
elementabsmultable_Fp 208804
FpM_trace 219685
_tablemul_ej_Fp 242039
alglat_get_primbasis 251188
alglat_get_scalar 296779
_tablemul_Fp 299736
algbasismultable 367854
elementabsmultable_Z 367854
alg_get_relmultable 394009
alg_get_dim 410673
H_model 462910
H_model0 462910
_tablemul 521822
alg_get_center 542462
Flm_invimage_pre 619387
_tablemul_ej_Fl 619387
alg_get_tracebasis 652287
algabstrace 652441
algbasismul 820872
algmul 821811
checkalg_i 1411465
checkalg 1538809
checkalgx 1895943
alg_model 1896132
alg_model0 1896132
alg_get_degree 2495165
alg_get_absdim 2562139
alg_get_multable 3757027
alg_type 10007257
alg_get_char 11651584
alg_get_splittingfield 25824049

Generated by: LCOV version 1.16