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.0 lcov report (development 29806-4d001396c7) Lines: 3881 3907 99.3 %
Date: 2024-12-21 09:08:57 Functions: 338 339 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
mk_C 14
alg_hilbert_asquare 21
algmatid 21
mk_R 21
algmodpr_mat 28
C_charpoly 35
C_trace 35
R_charpoly 35
R_trace 35
alg_quatramif 35
mk_H 35
C_norm 42
R_norm 42
R_tomatrix 42
algmakeintegral 42
CM_to_HM 49
change_Rgmultable 56
algaut 63
algnewprec 63
algnewprec_shallow 63
localcomplete 63
nextgen 63
HM_to_CM 70
algrelmultable 70
C_tomatrix 84
H_poleval 84
alg_get_splittingdata 84
alginvbasis 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
dividesmod 112
genefrob 112
subcycloindep 112
alg_matrix 119
algbasistoalg_mat 119
alM_sub 126
algbasistoquat 126
algisdivl 126
alg_get_aut 133
C_inv 140
HC_to_CC 140
normfact_is_partial 140
algbasis 154
algsplittingfield 161
localextdegell 161
algramifiedplaces 168
C_random 182
alg_maximal 182
algalgtobasis_mat 182
algisinv 189
bnfgwgeneric 189
H_divl_i 203
alC_sub_i 210
computesplitting 217
findmaximalsubfield 217
frobeniusform 217
alg_csa_table 245
algneg 245
check_relmt 245
nfgwkummer 245
alghassei 252
H_inv 259
algreal_dim 259
algquattobasis 266
algisdivision 287
alg_get_splitpol 294
algbasis2mat 294
groupelts_algebra 294
list_to_regular_rep 294
algissimple 301
algmodprlift 301
algmultable 308
H_sqr 329
alggroup 329
alggroupcenter 329
alghasse 336
alg_complete0 343
clean_factor 343
computecnd 343
rnfcycaut 343
alghassef 357
algdisc 364
uispow2 364
algiscommutative 392
algissemisimple 392
alM_add 406
bnrgwsearch 413
get_phi0 413
alghasse_emb 427
H_norm 434
hassecoprime 441
alg_hasse 455
cyclicrelfrob0 455
is_place_emb 462
algdivr 469
algtrace_mat 469
Rgmultable 476
algmodprlift_i 511
algdisc_i 525
algisassociative 532
nfgrunwaldwang 532
alg_hilbert 539
algredcharpoly_i 546
eichlerprimepower 546
algredcharpoly 553
ismaximalsubfield 553
H_trace 567
algdegree 679
algalgmul_csa 686
colconcat 686
hassereduce 714
algmat_tomatrix 728
alC_add_i 756
algcomputehasse 784
alg_cyclic 798
conjclasses_algcenter 847
algdivl 889
localhasse 903
testsplits 905
algleftmultable_mat 910
get_vecsmall 973
H_random 980
algdivl_i2 1015
algsub 1120
allauts 1127
alg_is_asq 1148
factoredextchinese 1148
alg_maximal_primes 1162
algpdecompose_i 1203
hasseconvert 1274
algnorm 1309
alginv 1323
algnatmultable 1344
algmtK2Z_csa 1379
algisramified 1386
algredtrace 1470
nfmakecoprime 1470
backtrackfacto 1491
factoredextchinesetest 1491
alginv_i 1512
localextdeg 1575
alghasse_pr 1652
alginit 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
alg_get_hasse_i 1743
alglatrighttransporter 1771
alglatlefttransporter 1778
algnattoalg_csa 1813
algmodpr 1841
algalgmultable_csa 1848
elementmultable 1848
checkhasse 1869
algeichlerbasis 2100
checkalgmodpr 2135
checkalgmodpr_i 2135
alghasse_0 2149
algindex 2191
algmodpr_get_m 2219
indexfromhasse 2219
algtype 2233
algalgmul 2345
H_tomatrix 2394
mat_algeltfromnf 2492
eichleridempotent 2499
eichlerprimepower_i 2499
alg_change_overorder_shallow 2669
algtrace 2681
alg_pmaximal 2694
algcenter_precompute 2694
algsimpledec 2730
algmodprinit 2793
cyclicrelfrob 2926
algmodpr_get_lift 3003
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 3871
algpdecompose0 3897
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
try_descend 4585
algmodpr_get_k 5005
alg_idempotent 5047
algeltfromnf 5061
alglatindex 5271
algcenter_p_projs 5342
algcenter_prad 5342
algeltfromnf_hnf 5342
algpradical_i 5342
algdim 6160
algtableinit 6202
alg_finite_csa_split 6510
algleftordermodp 6602
Flm_invimage_init 7072
alglatadd 7588
algprimesubalg 8138
algsimpledec_ss 8243
alglatelement 8778
alg_decompose_from_facto 9407
alg_quotient 10901
alg_centralproj 11069
prepare_lat 11683
prepare_multipliers 11683
alglataddinter 11697
algcenter 11795
algmtK2Z_cyc 11970
alg_ordermodp 11997
algradical 12824
try_split 13057
algtracematrix 13258
algZmultable 13349
algmtK2Z 13349
alg_subalg 13964
cmp_algebra 14075
algnattoalg_cyc 14658
random_pm1 14664
algalgmultable_cyc 14735
Z_easyfactor 15074
algalgtonat_csa 15400
algalgmultable 16268
algnattoalg 16471
alg_get_auts 17283
alg_get_b 17367
alglatcontains 17528
try_fact 17534
H_add 17745
out_decompose 18737
RgC_contract 18746
algrandom 19985
algpow 20426
algleftmultable 22078
alg_decompose_total 22481
algmatbasis_ei 23884
algmat2basis 23961
algtomatrix 25109
alM_mul 25627
alg_decompose 26821
mat2col 28322
algpoleval 28797
algtablecenter 30613
algbasischarpoly 31473
algeltfromnf_i 31690
algcharpoly 31739
alglatsubset 33495
alg_quotient0 33713
image_keep_first 35628
algbasisrightmultable 41146
algbasismultable_Flm 41430
algtracei 41430
alglatmul 45612
_mul 49113
RgM_mat2col 49343
alglathnf 53487
alM_alC_mul_i 54502
algadd 54999
algtableinit_i 54999
check_mt 55041
check_mt_noid 55566
ZM_trace 58493
algtracebasis 58998
primlat 64351
algalgtonat_cyc 66550
mattocol 72342
algalgtonat 81950
alg_get_invbasis 82034
algalgtobasis 83749
alg_get_abssplitting 93962
H_mul 108129
_tablemul_ej 111811
alMrow_alC_mul_i 119651
_sqr 119977
algsqr 122364
elementabsmultable 149376
checklat 186858
checklat_i 186858
elementabsmultable_Fp 186934
FpM_trace 200506
H_compo 205639
_tablemul_ej_Fp 242039
alglat_get_primbasis 251188
_tablemul_Fp 291196
alglat_get_scalar 296779
algbasismultable 336310
elementabsmultable_Z 336310
alg_get_relmultable 386099
alg_get_dim 402134
H_model 462812
H_model0 462812
alg_get_center 519163
Flm_invimage_pre 520237
_tablemul_ej_Fl 520237
_tablemul 521612
alg_get_tracebasis 587271
algabstrace 587425
algbasismul 812122
algmul 817753
checkalg_i 1382656
checkalg 1509986
checkalgx 1872616
alg_model 1872777
alg_model0 1872777
alg_get_degree 2456907
alg_get_absdim 2518797
alg_get_multable 3645462
alg_type 9805305
alg_get_char 11357023
alg_get_splittingfield 25293201

Generated by: LCOV version 1.16