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 30005-fc14bb602a) Lines: 3972 3998 99.3 %
Date: 2025-02-18 09:22:46 Functions: 346 347 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 8918
Flm_invimage_pre 613219
FpM_trace 220751
HC_to_CC 140
HM_to_CM 70
H_add 17745
H_charpoly 98
H_compo 205639
H_divl_i 203
H_inv 259
H_invol 98
H_model 462910
H_model0 462910
H_mul 108129
H_neg 98
H_norm 434
H_poleval 84
H_random 980
H_sqr 329
H_tomatrix 2457
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_col2mat 1708
RgC_contract 18746
RgM_contract 4165
RgM_mat2col 49343
Rgmultable 476
ZM_trace 69918
Z_easyfactor 15431
_mul 52130
_sqr 124913
_tablemul 521822
_tablemul_Fp 299943
_tablemul_ej 111811
_tablemul_ej_Fl 613219
_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 16086
alg_centralproj 12634
alg_change_overorder_shallow 3568
alg_complete 0
alg_complete0 413
alg_csa_table 294
alg_cyclic 987
alg_decompose 28363
alg_decompose_from_facto 9949
alg_decompose_total 24023
alg_finite_csa_split 6510
alg_get_absdim 2564605
alg_get_abssplitting 103166
alg_get_aut 1169
alg_get_auts 20937
alg_get_b 19992
alg_get_basis 3297
alg_get_center 542845
alg_get_char 11656455
alg_get_degree 2496273
alg_get_dim 410666
alg_get_hasse_f 4550
alg_get_hasse_i 2198
alg_get_invbasis 86940
alg_get_invol 3813
alg_get_multable 3763303
alg_get_relmultable 393953
alg_get_splitpol 315
alg_get_splittingbasis 4347
alg_get_splittingbasisinv 4347
alg_get_splittingdata 84
alg_get_splittingfield 25841217
alg_get_tracebasis 650042
alg_hasse 525
alg_hilbert 658
alg_hilbert_asquare 28
alg_idempotent 5047
alg_insert_quatconj 1036
alg_is_asq 1183
alg_matrix 147
alg_maximal 224
alg_maximal_primes 1442
alg_model 1897290
alg_model0 1897290
alg_ordermodp 14508
alg_pmaximal 3292
alg_quatramif 77
alg_quotient 12291
alg_quotient0 38269
alg_subalg 14506
alg_type 10014020
algabstrace 650196
algadd 54999
algalgmul 2345
algalgmul_csa 686
algalgmul_cyc 1659
algalgmultable 19005
algalgmultable_csa 2170
algalgmultable_cyc 17164
algalgtobasis 88858
algalgtobasis_mat 182
algalgtonat 86856
algalgtonat_csa 16156
algalgtonat_cyc 70700
algaut 63
algb 91
algbasis 154
algbasis2mat 294
algbasischarpoly 32315
algbasismul 821079
algbasismultable 369693
algbasismultable_Flm 51210
algbasisrightmultable 41265
algbasissplittingmatrix_csa 4347
algbasistoalg 3409
algbasistoalg_mat 119
algbasistoquat 126
algcenter 11795
algcenter_p_projs 6832
algcenter_prad 6832
algcenter_precompute 3292
algchar 112
algcharpoly 32511
algcomputehasse 973
algdegree 679
algdim 6216
algdisc 364
algdisc_i 567
algdivl 889
algdivl_i 3199
algdivl_i2 1015
algdivr 469
algeichlerbasis 2100
algeltfromnf 5138
algeltfromnf_hnf 6832
algeltfromnf_i 36547
alggroup 329
alggroupcenter 329
alghasse 343
alghasse_0 2380
alghasse_emb 497
alghasse_pr 1799
alghassef 364
alghassei 266
algindex 2191
alginit 1995
alginv 1330
alginv_i 2989
alginvbasis 84
alginvol 308
algisassociative 532
algiscommutative 392
algisdivision 287
algisdivl 126
algisinv 1659
algisisom 245
algisquatalg 98
algisramified 1386
algissemisimple 392
algissimilar_i 154
algissimple 301
algissplit 1652
alglat_get_primbasis 251188
alglat_get_scalar 296779
alglatadd 7588
alglataddinter 11697
alglatcontains 17528
alglatelement 8778
alglathnf 53487
alglatindex 5271
alglatinter 4109
alglatlefttransporter 1778
alglatmul 45612
alglatrighttransporter 1771
alglatsubset 33495
alglattransporter_i 3535
algleftmultable 23660
algleftmultable_mat 910
algleftordermodp 8714
algmakeintegral 42
algmat2basis 23961
algmat_tomatrix 728
algmatbasis_ei 23884
algmatid 21
algmodpr 1841
algmodpr_get_T 3801
algmodpr_get_ff 1715
algmodpr_get_k 5005
algmodpr_get_lift 3003
algmodpr_get_m 2219
algmodpr_get_p 3948
algmodpr_get_pr 3948
algmodpr_get_proj 1708
algmodpr_get_tau 1729
algmodpr_i 1729
algmodpr_integral 1708
algmodpr_mat 28
algmodprinit 2793
algmodprlift 301
algmodprlift_i 511
algmtK2Z 16086
algmtK2Z_csa 1687
algmtK2Z_cyc 14399
algmul 821767
algmultable 308
algnatmultable 1652
algnattoalg 19229
algnattoalg_csa 2135
algnattoalg_cyc 17094
algneg 245
algnewprec 84
algnewprec_shallow 84
algnorm 1309
algpdecompose0 4918
algpdecompose_i 1626
algpoleval 29409
algpow 22492
algpradical_i 6832
algprimesubalg 9664
algquattobasis 280
algradical 14868
algramifiedplaces 364
algrandom 20104
algreal_dim 259
algredcharpoly 553
algredcharpoly_i 546
algredtrace 1512
algrelmultable 70
algrightmultable 77
algsimpledec 2730
algsimpledec_ss 9769
algskolemnoether 112
algsplit 3766
algsplittingdata 84
algsplittingfield 161
algsqr 127307
algsub 1127
algsubalg 84
algtablecenter 33139
algtableinit 6223
algtableinit_i 60118
algtensor 84
algtomatrix 25109
algtrace 2702
algtrace_mat 469
algtracebasis 65324
algtracei 51210
algtracematrix 15344
algtype 2254
allauts 1386
backtrackfacto 1827
bnfgwgeneric 210
bnrgwsearch 441
change_Rgmultable 56
check_mt 60160
check_mt_noid 60685
check_relmt 294
checkalg 1540061
checkalg_i 1412717
checkalgmodpr 2135
checkalgmodpr_i 2135
checkalgx 1897101
checkhasse 2254
checklat 186858
checklat_i 186858
clean_factor 413
cmp_algebra 14617
colconcat 826
computecnd 413
computesplitting 266
conjclasses_algcenter 847
cyclicrelfrob 3353
cyclicrelfrob0 546
descend 4165
descend_i 4165
dividesmod 140
eichleridempotent 2499
eichlerprimepower 546
eichlerprimepower_i 2499
elementabsmultable 159202
elementabsmultable_Fp 210491
elementabsmultable_Z 369693
elementmultable 2170
extraprime 84
factoredextchinese 1421
factoredextchinesetest 1834
findmaximalsubfield 266
frobeniusform 266
genefrob 140
get_phi0 441
get_vecsmall 1113
groupelts_algebra 294
hasseconvert 1484
hassecoprime 511
hassereduce 854
image_keep_first 39336
indexfromhasse 2219
is_place_emb 546
ismaximalsubfield 623
list_to_regular_rep 294
localcomplete 77
localextdeg 1624
localextdegell 175
localhasse 1127
mat2col 28322
mat_algeltfromnf 2492
matrix_perm 3857
mattocol 93911
mk_C 21
mk_H 56
mk_R 28
nextgen 77
nfgrunwaldwang 602
nfgwkummer 294
nfmakecoprime 1799
normfact_is_partial 168
out_decompose 19821
prepare_lat 11683
prepare_multipliers 11683
primlat 64351
randcol 7
random_pm1 15206
rnfcycaut 413
subcycloindep 140
testsplits 994
try_descend 4585
try_fact 18257
try_split 13106
uispow2 385

Generated by: LCOV version 1.16