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.18.0 lcov report (development 29806-4d001396c7) Lines: 1019 1106 92.1 %
Date: 2024-12-21 09:08:57 Functions: 112 119 94.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
cyc_pow_perm 0
groupelts_abelian_group 0
groupelts_exponent 0
vec_is1to1 0
vecperm_extendschreier 0
vecsmall_duplicate_sorted 0
vecvecsmall_max 0
all_cyclic_subg 14
group_export_GAP 14
group_export_MAGMA 14
groupelts_cyclic_primepow 14
groupelts_residuum 14
groupelts_solvablesubgroups 14
groupelts_subgroups_raw 14
groupelts_to_regular 14
set_derived 14
set_idx 14
subg_to_elts 14
triv_subg 14
vecvecsmall_sort 14
perm_mul_inplace2 21
perm_to_GAP 21
group_export 28
perm_pow 56
vecvecsmall_sort_inplace 126
permcycles 259
permsign 273
group_abelianSNF 336
group_subgroup_isnormal 336
subg_extend 364
group_abelianHNF 385
perm_order 427
abelian_group 434
cyclic_subg 434
groupelts_pow 434
permorder 434
vecvecsmall_sort_uniq 462
subgroups_tableset 497
groupelts_center 700
groupelt_subg_normalize 812
set_groupelts 826
vecvecsmall_indexsort 861
dicyclicgroup 1085
subg_get_gen 1176
quotient_groupelts 1512
perm_to_Z 1680
perm_to_Z_inplace 1701
permtonum 1708
vec_isconst 1848
_domul 2002
tableset_find_index 2002
isperm 2667
groupelts_cyclic_subgroups 3577
groupelts_to_group 3584
galois_elts_sorted 3885
conjclasses_repr 4270
groupelts_conjclasses 4270
group_to_cc 4291
vecperm_orbits 4781
group_subgroup_is_faithful 4816
group_subgroup_kernel_set 4816
Z_to_perm 5915
numtoperm 5915
cyc_pow 7300
subg_get_set 8694
group_isabelian 8932
group_isA4S4 10038
quotient_group 10206
group_quotient 10213
vecsmall_is1to1 11241
groupelts_quotient 11725
vecsmall_counting_indexsort 12433
perm_generate 13076
group_subgroups 13230
perm_cycles 13312
groupelts_conj_set 14448
groupelts_subgroup_isnormal 14609
vecsmall_counting_uniq 16115
vecsmall_uniq 16474
sgcmp 17353
vecsmall_isconst 17465
perm_powu 18690
vecsmall_duplicate 20193
group_domain 26684
cyclicgroup 27916
groupelts_set 28098
quo_get_coset 30058
quotient_perm 30058
vecsmall_uniq_sorted 31390
liftsubgroup 49266
perm_bracket 50400
quotient_subgroup_lift 50778
trivialsubgroups 52458
trivialgroup 52486
vecsmall_is1to1spec 54275
liftlistsubgroups 65247
group_set 90699
vec_insert 98084
group_elts 140812
quo_get_gen 141820
group_perm_normalize 182245
group_rightcoset 182245
perm_relorder 220220
group_leftcoset 304430
vecvecsmall_sort_shallow 365848
perm_orderu 436377
perm_commute 572495
group_order 711039
grp_get_gen 942585
perm_sign 956064
vecperm_orbits_i 1410949
grp_get_ord 1597470
vecsmall_counting_sort 1912970
vecsmall_indexsort 2409759
vecsmall_indexsortspec 7954331
vecvecsmall_search 22934359
vecsmall_sort_max 25248501
vecsmall_sort 29669291
vecsmall_sortspec 143633808

Generated by: LCOV version 1.16