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.16.1 lcov report (development 28697-a4113027d0) Lines: 3471 3497 99.3 %
Date: 2023-09-28 07:47:45 Functions: 304 305 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
mk_H 14
mk_R 14
algmatid 21
localcomplete 21
nextgen 21
algdisc 28
C_charpoly 35
C_trace 35
R_charpoly 35
R_trace 35
dividesmod 35
C_norm 42
R_norm 42
R_tomatrix 42
algaut 42
algmakeintegral 42
CM_to_HM 49
algrelmultable 49
change_Rgmultable 49
alg_get_splittingdata 56
algb 56
algsplittingdata 56
algbasis 63
alginvbasis 63
HM_to_CM 70
alg_get_splitpol 70
algsubalg 70
H_poleval 77
genefrob 77
subcycloindep 77
C_tomatrix 84
alg_matrix 84
algtensor 84
extraprime 84
CC_to_HC 98
H_charpoly 98
H_neg 98
algramifiedplaces 98
C_divl_i 112
alg_get_aut 112
algchar 112
algbasistoalg_mat 119
algsplittingfield 119
localextdegell 119
alM_sub 126
algisdivl 126
alg_maximal 133
C_inv 140
HC_to_CC 140
algdisc_i 140
computesplitting 140
findmaximalsubfield 140
frobeniusform 140
bnfgwgeneric 154
alg_csa_table 168
check_relmt 168
localextdeg 168
C_random 182
algalgtobasis_mat 182
algisinv 189
nfgwkummer 196
H_divl_i 203
algisramified 203
alC_sub_i 210
algisdivision 224
algtype 224
alghassei 231
alghasse 238
algreal_dim 238
algmultable 245
algneg 245
H_inv 259
alg_complete0 259
clean_factor 259
computecnd 259
rnfcycaut 259
alg_hilbert 280
algissimple 280
algbasis2mat 294
alghasse_emb 294
groupelts_algebra 294
list_to_regular_rep 294
algdegree 322
H_sqr 329
alggroup 329
alggroupcenter 329
alghassef 329
is_place_emb 329
uispow2 329
hassecoprime 357
alg_hasse 371
algiscommutative 371
algissemisimple 371
algredcharpoly_i 378
bnrgwsearch 378
get_phi0 378
testsplits 381
algredcharpoly 385
alghasse_pr 399
alM_add 406
algissplit 406
cyclicrelfrob0 420
ismaximalsubfield 420
Rgmultable 427
H_norm 434
nfgrunwaldwang 448
algdivr 469
algtrace_mat 469
algcomputehasse 490
alg_cyclic 504
algisassociative 511
colconcat 518
hassereduce 546
H_trace 567
factoredextchinese 581
localhasse 581
algalgmul_csa 686
algmat_tomatrix 728
allauts 749
alC_add_i 756
alghasse_0 763
alg_maximal_primes 777
algsimpledec 777
get_vecsmall 805
algindex 812
indexfromhasse 812
backtrackfacto 840
factoredextchinesetest 840
algpdecompose_i 846
conjclasses_algcenter 847
algdivl 875
algnatmultable 889
algleftmultable_mat 910
algmtK2Z_csa 917
H_random 980
algdivl_i2 1001
cyclicrelfrob 1008
nfmakecoprime 1008
Z_easyfactor 1018
hasseconvert 1022
algsub 1120
alginit 1162
alg_get_hasse_i 1169
algnorm 1253
algnattoalg_csa 1281
alg_pmaximal 1314
algcenter_precompute 1314
alginv 1323
checkhasse 1358
algalgmultable_csa 1365
elementmultable 1365
algredtrace 1372
alginv_i 1512
algalgmul_cyc 1659
algdivl_i 1715
alg_change_overorder_shallow 1766
alglatrighttransporter 1771
algdim 1778
alglatlefttransporter 1778
alg_get_hasse_f 1911
algpdecompose0 2160
H_tomatrix 2331
algalgmul 2345
algtrace 2632
alg_get_basis 2716
alg_quotient 2799
algbasistoalg 2926
alg_idempotent 3038
algcenter_p_projs 3080
algcenter_prad 3080
algfromcenterhnf 3080
algpradical_i 3080
RgM_contract 3437
descend 3437
descend_i 3437
QM_invimZ_mod 3535
alglattransporter_i 3535
alglatinter 3605
alg_finite_csa_split 3752
algsplit 3766
matrix_perm 3857
try_descend 3857
alg_get_splittingbasis 4102
alg_get_splittingbasisinv 4102
algbasissplittingmatrix_csa 4102
algleftordermodp 4196
algtableinit 4200
Flm_invimage_init 4383
algprimesubalg 4414
R_random 4466
algsimpledec_ss 4512
algcenter 4886
alg_ordermodp 5240
alglatindex 5271
algradical 5747
algtracematrix 5796
try_split 6482
algleftmultable 6951
alglatadd 7098
alg_decompose_from_facto 7427
alg_centralproj 8653
alglatelement 8778
algmtK2Z_cyc 8946
algtomatrix 9667
algZmultable 9863
algmtK2Z 9863
prepare_lat 10689
prepare_multipliers 10689
alglataddinter 10703
algfromcenter 11011
alg_subalg 11172
algnattoalg_cyc 11235
algalgtonat_csa 11375
algalgmultable_cyc 11564
random_pm1 11886
cmp_algebra 11921
algnattoalg 12516
algalgmultable 12635
algpow 12882
alg_get_auts 13818
alg_get_b 13839
try_fact 13853
out_decompose 14777
RgC_contract 15568
alg_decompose_total 16765
algpoleval 17276
alglatcontains 17528
H_add 17745
algtablecenter 18988
algrandom 19677
alg_decompose 20363
algbasischarpoly 21077
alg_quotient0 21091
algcharpoly 21280
algmatbasis_ei 23884
algmat2basis 23961
algbasismultable_Flm 24639
algtracei 24639
alM_mul 25627
_mul 26049
mat2col 28322
image_keep_first 28491
Fq_mat2col 29939
alglatsubset 31556
algbasisrightmultable 36568
algtableinit_i 37583
check_mt 37625
check_mt_noid 38129
algtracebasis 40224
ZM_trace 42288
alglatmul 45612
algalgtonat_cyc 49245
_sqr 49799
algsqr 51031
alglathnf 51072
alM_alC_mul_i 54502
algadd 54845
mattocol 55305
algalgtonat 60620
alg_get_invbasis 60683
algalgtobasis 61082
primlat 63343
alg_get_abssplitting 69916
_tablemul_ej 99904
H_mul 108101
elementabsmultable_Fp 111600
elementabsmultable 115040
alMrow_alC_mul_i 119651
FpM_trace 131590
checklat 180992
checklat_i 180992
_tablemul_Fp 192758
_tablemul 205394
H_compo 205583
alg_get_relmultable 216356
alg_get_dim 225155
algbasismultable 226640
elementabsmultable_Z 226640
alg_get_tracebasis 236466
algabstrace 236620
_tablemul_ej_Fp 242039
alglat_get_primbasis 244314
Flm_invimage_pre 244362
_tablemul_ej_Fl 244362
alglat_get_scalar 289905
alg_get_center 298765
algbasismul 397466
H_model 462630
H_model0 462630
algmul 475676
checkalg_i 826996
checkalg 956349
checkalgx 1037656
alg_model 1037796
alg_model0 1037796
alg_get_degree 1207605
alg_get_absdim 1592841
alg_get_multable 2261379
alg_type 5630505
alg_get_char 5936143
alg_get_splittingfield 14252565

Generated by: LCOV version 1.14