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 29712-7c8a932571) Lines: 3881 3907 99.3 %
Date: 2024-11-15 09:08:45 Functions: 338 339 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 7030
Flm_invimage_pre 519677
FpM_trace 200282
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_model 462812
H_model0 462812
H_mul 108129
H_neg 98
H_norm 434
H_poleval 84
H_random 980
H_sqr 329
H_tomatrix 2394
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 58325
Z_easyfactor 15053
_mul 48945
_sqr 119599
_tablemul 521612
_tablemul_Fp 290622
_tablemul_ej 111811
_tablemul_ej_Fl 519677
_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 13321
alg_centralproj 11041
alg_change_overorder_shallow 2634
alg_complete 0
alg_complete0 343
alg_csa_table 245
alg_cyclic 791
alg_decompose 26737
alg_decompose_from_facto 9379
alg_decompose_total 22397
alg_finite_csa_split 6510
alg_get_absdim 2516795
alg_get_abssplitting 93682
alg_get_aut 133
alg_get_auts 17248
alg_get_b 17332
alg_get_basis 3255
alg_get_center 518631
alg_get_char 11349652
alg_get_degree 2455598
alg_get_dim 402078
alg_get_hasse_f 3857
alg_get_hasse_i 1736
alg_get_invbasis 81838
alg_get_multable 3640947
alg_get_relmultable 386099
alg_get_splitpol 259
alg_get_splittingbasis 4347
alg_get_splittingbasisinv 4347
alg_get_splittingdata 84
alg_get_splittingfield 25274896
alg_get_tracebasis 586361
alg_hasse 455
alg_hilbert 532
alg_hilbert_asquare 21
alg_idempotent 5047
alg_is_asq 1113
alg_matrix 119
alg_maximal 182
alg_maximal_primes 1155
alg_model 1871678
alg_model0 1871678
alg_ordermodp 11822
alg_pmaximal 2638
alg_quatramif 35
alg_quotient 10845
alg_quotient0 33601
alg_subalg 13936
alg_type 9798347
algabstrace 586515
algadd 54999
algalgmul 2345
algalgmul_csa 686
algalgmul_cyc 1659
algalgmultable 16240
algalgmultable_csa 1848
algalgmultable_cyc 14707
algalgtobasis 83553
algalgtobasis_mat 182
algalgtonat 81754
algalgtonat_csa 15400
algalgtonat_cyc 66354
algaut 63
algb 91
algbasis 154
algbasis2mat 294
algbasischarpoly 31431
algbasismul 811548
algbasismultable 335911
algbasismultable_Flm 41290
algbasisrightmultable 41146
algbasissplittingmatrix_csa 4347
algbasistoalg 3367
algbasistoalg_mat 119
algbasistoquat 105
algcenter 11795
algcenter_p_projs 5251
algcenter_prad 5251
algcenter_precompute 2638
algchar 112
algcharpoly 31697
algcomputehasse 777
algdegree 679
algdim 6160
algdisc 364
algdisc_i 525
algdivl 889
algdivl_i 1729
algdivl_i2 1015
algdivr 469
algeichlerbasis 2100
algeltfromnf 5061
algeltfromnf_hnf 5251
algeltfromnf_i 31508
alggroup 329
alggroupcenter 329
alghasse 336
alghasse_0 2149
alghasse_emb 427
alghasse_pr 1652
alghassef 357
alghassei 252
algindex 2191
alginit 1645
alginv 1323
alginv_i 1512
alginvbasis 84
algisassociative 532
algiscommutative 392
algisdivision 287
algisdivl 126
algisinv 189
algisquatalg 91
algisramified 1386
algissemisimple 392
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 22078
algleftmultable_mat 910
algleftordermodp 6511
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 13321
algmtK2Z_csa 1379
algmtK2Z_cyc 11942
algmul 817557
algmultable 308
algnatmultable 1337
algnattoalg 16422
algnattoalg_csa 1813
algnattoalg_cyc 14609
algneg 245
algnewprec 63
algnewprec_shallow 63
algnorm 1309
algpdecompose0 3813
algpdecompose_i 1175
algpoleval 28769
algpow 20314
algpradical_i 5251
algprimesubalg 8054
algquattobasis 252
algradical 12733
algramifiedplaces 168
algrandom 19985
algreal_dim 259
algredcharpoly 553
algredcharpoly_i 546
algredtrace 1470
algrelmultable 70
algsimpledec 2730
algsimpledec_ss 8159
algsplit 3766
algsplittingdata 84
algsplittingfield 161
algsqr 121986
algsub 1120
algsubalg 84
algtablecenter 30473
algtableinit 6202
algtableinit_i 54859
algtensor 84
algtomatrix 25109
algtrace 2681
algtrace_mat 469
algtracebasis 58816
algtracei 41290
algtracematrix 13167
algtype 2233
allauts 1120
backtrackfacto 1470
bnfgwgeneric 189
bnrgwsearch 413
change_Rgmultable 56
check_mt 54901
check_mt_noid 55426
check_relmt 245
checkalg 1508635
checkalg_i 1381305
checkalgmodpr 2135
checkalgmodpr_i 2135
checkalgx 1871517
checkhasse 1862
checklat 186858
checklat_i 186858
clean_factor 343
cmp_algebra 14047
colconcat 686
computecnd 343
computesplitting 217
conjclasses_algcenter 847
cyclicrelfrob 2891
cyclicrelfrob0 455
descend 4165
descend_i 4165
dividesmod 112
eichleridempotent 2499
eichlerprimepower 546
eichlerprimepower_i 2499
elementabsmultable 149271
elementabsmultable_Fp 186640
elementabsmultable_Z 335911
elementmultable 1848
extraprime 84
factoredextchinese 1127
factoredextchinesetest 1470
findmaximalsubfield 217
frobeniusform 217
genefrob 112
get_phi0 413
get_vecsmall 973
groupelts_algebra 294
hasseconvert 1274
hassecoprime 441
hassereduce 714
image_keep_first 35544
indexfromhasse 2219
is_place_emb 462
ismaximalsubfield 553
list_to_regular_rep 294
localcomplete 63
localextdeg 1575
localextdegell 161
localhasse 882
mat2col 28322
mat_algeltfromnf 2492
matrix_perm 3857
mattocol 71978
mk_C 14
mk_H 35
mk_R 21
nextgen 63
nfgrunwaldwang 532
nfgwkummer 245
nfmakecoprime 1463
normfact_is_partial 140
out_decompose 18681
prepare_lat 11683
prepare_multipliers 11683
primlat 64351
randcol 7
random_pm1 14636
rnfcycaut 343
subcycloindep 112
testsplits 905
try_descend 4585
try_fact 17492
try_split 13057
uispow2 364

Generated by: LCOV version 1.16