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 - perm.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29115-f22e516b23) Lines: 992 1078 92.0 %
Date: 2024-04-19 08:07:09 Functions: 108 115 93.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Z_to_perm 5915
_domul 2002
abelian_group 406
all_cyclic_subg 7
conjclasses_repr 4270
cyc_pow 7301
cyc_pow_perm 0
cyclic_subg 217
cyclicgroup 26670
dicyclicgroup 1085
galois_elts_sorted 3885
group_abelianHNF 385
group_abelianSNF 336
group_domain 26628
group_elts 140560
group_export 28
group_export_GAP 14
group_export_MAGMA 14
group_isA4S4 9982
group_isabelian 8932
group_leftcoset 301623
group_order 705292
group_perm_normalize 179844
group_quotient 10157
group_rightcoset 179844
group_set 90671
group_subgroup_is_faithful 4816
group_subgroup_isnormal 336
group_subgroup_kernel_set 4816
group_subgroups 13146
group_to_cc 4291
groupelt_subg_normalize 399
groupelts_abelian_group 0
groupelts_center 700
groupelts_conj_set 14448
groupelts_conjclasses 4270
groupelts_cyclic_primepow 7
groupelts_cyclic_subgroups 3010
groupelts_exponent 0
groupelts_pow 217
groupelts_quotient 11522
groupelts_set 28014
groupelts_solvablesubgroups 7
groupelts_subgroup_isnormal 13783
groupelts_subgroups_raw 7
groupelts_to_group 3017
groupelts_to_regular 7
grp_get_gen 936299
grp_get_ord 1585549
isperm 2667
liftlistsubgroups 65219
liftsubgroup 49182
numtoperm 5915
perm_commute 572495
perm_cycles 13314
perm_generate 13048
perm_mul_inplace2 21
perm_order 427
perm_orderu 433476
perm_pow 49
perm_powu 18585
perm_relorder 220108
perm_sign 968894
perm_to_GAP 21
perm_to_Z 1680
perm_to_Z_inplace 1701
permcycles 259
permorder 434
permsign 273
permtonum 1708
quo_get_coset 29708
quo_get_gen 140952
quotient_group 10150
quotient_groupelts 1365
quotient_perm 29708
quotient_subgroup_lift 50547
set_groupelts 406
sgcmp 17353
subg_extend 182
subg_get_gen 581
subg_get_set 4333
subg_to_elts 7
subgroups_tableset 497
tableset_find_index 2002
triv_subg 7
trivialgroup 52367
trivialsubgroups 52346
vec_insert 98084
vec_is1to1 0
vec_isconst 1841
vecperm_extendschreier 0
vecperm_orbits 4746
vecperm_orbits_i 1420842
vecsmall_counting_indexsort 10633
vecsmall_counting_sort 1877953
vecsmall_counting_uniq 16115
vecsmall_duplicate 19493
vecsmall_duplicate_sorted 0
vecsmall_indexsort 2386205
vecsmall_indexsortspec 7912851
vecsmall_is1to1 11206
vecsmall_is1to1spec 54170
vecsmall_isconst 17422
vecsmall_sort 29197802
vecsmall_sort_max 24868350
vecsmall_sortspec 139477993
vecsmall_uniq 16474
vecsmall_uniq_sorted 31369
vecvecsmall_indexsort 441
vecvecsmall_max 0
vecvecsmall_search 22934359
vecvecsmall_sort 7
vecvecsmall_sort_inplace 119
vecvecsmall_sort_shallow 361046
vecvecsmall_sort_uniq 462

Generated by: LCOV version 1.14