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.1 lcov report (development 30622-caa25a75db) Lines: 1915 2300 83.3 %
Date: 2026-01-22 09:18:00 Functions: 121 153 79.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Flm_newtonsum 16748
Flv_sympol_eval 10723
FlxV_Flx_gcd 0
FlxV_minpolymod 0
Flx_FlxV_minpolymod 0
FpXV_ffisom 91
Qevproj_RgX 4186
Vmatrix 5558
a4galoisgen 98
aut_to_groupelts 1079
automorphismlift 29684
br_get 0
brl_add 0
cc_char_det 56
cc_chartable 546
cc_id 36939
checkgal 30249
checkgaloischar 1491
checkgroup 4080
checkgroupelts 4634
chiFT 861
chival 3920
chk_perm 6961
conjclasses_count 308
conjcyclo 878
cyclic_pc 22413
embed_disc 126802
embed_roots 11978
f36galoisgen 14
f36releveauto2 910
f36releveauto4 35
factperm 0
findp 0
findpsi 72
fixedfieldfactmod 5243
fixedfieldfactor 91
fixedfieldinclusion 1055
fixedfieldorbits 10648
fixedfieldsurmer 10648
fixedfieldsympol 10648
freetest 5320
frobeniusliftall 1864
galois_find_totally_split 7
galois_group 3168
galois_test_perm 117368
galoisanalysis 85929
galoisborne 29048
galoischar_aut_charpoly 12355
galoischar_charpoly 1491
galoischar_dim 1547
galoischardet 56
galoischarpoly 1435
galoischartable 553
galoisconj 63852
galoisconj0 63
galoisconj1 31285
galoisconj4 0
galoisconj4_main 85970
galoisconj_monic 63852
galoisconjclasses 308
galoiscosets 91
galoisdolift 27858
galoisdoliftn 1238
galoisexport 28
galoisfindfrobenius 27668
galoisfindgroups 93
galoisfixedfield 5405
galoisfrobeniuslift 2050
galoisfrobeniuslift_nilp 25717
galoisfrobeniustest 56222
galoisgen 27857
galoisgenfixedfield 5243
galoisgenfixedfield0 5243
galoisgenlift 5222
galoisgenlift_nilp 0
galoisgenliftauto 6433
galoisidentify 504
galoisinit 45408
galoisinitfromaut 1086
galoisisabelian 217
galoisisnormal 56
galoismakepsi 1589
galoisperm_free 0
galoisperm_init 0
galoispermtopol 17698
galoispermtopol_i 17698
galoissplittinginit 1072
galoissubfields 84
galoissubgroups 3032
galoisvecpermtopol 8665
genorbit 0
get_image 6433
get_pow 0
getfr 0
gg_get_std 31783
group_is_elt 8170
groupelts_to_group_or_elts 826
improves 151568
init_group 85929
initgaloisborne 76691
initlift 27858
inittest 5320
inittestlift 1636
intheadlong 1344405
is2sparse 9496
is_group 12791
lincomb 319426
listznstarelts 1638
makeLden 27759
matheadlong 5558
matrixnorm 492935
mkliftpow 91
monomorphismratlift 29684
monoratlift 60463
muldiv 0
nilp_froblift 0
notgalois 58072
numberofconjugates 31285
padicisint 93672
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 47609
polheadlong 38192
poltopermtest 61335
psi_order 27656
s4galoisgen 77
s4makelift 1458
s4releveauto 513
s4test 239307
stpow 14318
sympol_aut_evalmod 5243
sympol_eval 10648
sympol_eval_newtonsum 10723
sympol_is1to1_lg 11191
testpermutation 8537
vec_groupelts_to_group_or_elts 14
vecheadlong 56977
vecsmall_increase 0
vectopol 49203
vecvecsmall_increase 0
wpow 6433

Generated by: LCOV version 1.16