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 - basemath - galconj.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.0 lcov report (development 29850-4a5867bab3) Lines: 1917 2301 83.3 %
Date: 2025-01-04 09:08:27 Functions: 121 153 79.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Flm_newtonsum 17617
Flv_sympol_eval 11259
FlxV_Flx_gcd 0
FlxV_minpolymod 0
Flx_FlxV_minpolymod 0
FpXV_ffisom 91
Qevproj_RgX 4186
Vmatrix 5687
a4galoisgen 98
aut_to_groupelts 1246
automorphismlift 31763
br_get 0
brl_add 0
cc_char_det 56
cc_chartable 546
cc_id 36939
checkgal 31052
checkgaloischar 1491
checkgroup 4270
checkgroupelts 4634
chiFT 861
chival 3920
chk_perm 7469
conjclasses_count 308
conjcyclo 980
cyclic_pc 24248
embed_disc 136361
embed_roots 11532
f36galoisgen 14
f36releveauto2 910
f36releveauto4 35
factperm 0
findp 0
findpsi 73
fixedfieldfactmod 5372
fixedfieldfactor 91
fixedfieldinclusion 1057
fixedfieldorbits 11182
fixedfieldsurmer 11182
fixedfieldsympol 11182
freetest 5449
frobeniusliftall 2016
galois_find_totally_split 7
galois_group 3346
galois_test_perm 117418
galoisanalysis 96781
galoisborne 31181
galoischar_aut_charpoly 12355
galoischar_charpoly 1491
galoischar_dim 1547
galoischardet 56
galoischarpoly 1435
galoischartable 553
galoisconj 70182
galoisconj0 63
galoisconj1 35944
galoisconj4 0
galoisconj4_main 96882
galoisconj_monic 70182
galoisconjclasses 308
galoiscosets 91
galoisdolift 29827
galoisdoliftn 1347
galoisexport 28
galoisfindfrobenius 29634
galoisfindgroups 98
galoisfixedfield 5810
galoisfrobeniuslift 2233
galoisfrobeniuslift_nilp 27503
galoisfrobeniustest 60253
galoisgen 29823
galoisgenfixedfield 5372
galoisgenfixedfield0 5372
galoisgenlift 5351
galoisgenlift_nilp 0
galoisgenliftauto 6576
galoisidentify 504
galoisinit 51369
galoisinitfromaut 1253
galoisisabelian 224
galoisisnormal 56
galoismakepsi 1729
galoisperm_free 0
galoisperm_init 0
galoispermtopol 17927
galoispermtopol_i 17927
galoissplittinginit 1239
galoissubfields 84
galoissubgroups 3213
galoisvecpermtopol 8855
genorbit 0
get_image 6576
get_pow 0
getfr 0
gg_get_std 33844
group_is_elt 8351
groupelts_to_group_or_elts 826
improves 162864
init_group 96782
initgaloisborne 84023
initlift 29827
inittest 5449
inittestlift 1771
intheadlong 1360944
is2sparse 10976
is_group 13279
lincomb 321242
listznstarelts 1778
makeLden 29725
matheadlong 5687
matrixnorm 422865
mkliftpow 91
monomorphismratlift 31763
monoratlift 64072
muldiv 0
nilp_froblift 0
notgalois 66957
numberofconjugates 35944
padicisint 94906
pc_bracket 0
pc_evalcache 0
pc_exp 0
pc_inv 0
pc_mul 0
pc_normalize 0
pc_to_perm 0
pcgrp_get_br 0
pcgrp_get_ord 0
pcgrp_get_pow 0
pcgrp_insert 0
pcgrp_lift 0
permprodeval 0
permtoaut 0
permtopol 49849
polheadlong 38926
poltopermtest 65660
psi_order 29620
s4galoisgen 77
s4makelift 1458
s4releveauto 513
s4test 240527
stpow 14636
sympol_aut_evalmod 5372
sympol_eval 11182
sympol_eval_newtonsum 11259
sympol_is1to1_lg 11757
testpermutation 8805
vec_groupelts_to_group_or_elts 14
vecheadlong 58329
vecsmall_increase 0
vectopol 51445
vecvecsmall_increase 0
wpow 6576

Generated by: LCOV version 1.16