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 - buch3.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28880-3b5364847c) Lines: 1512 1617 93.5 %
Date: 2023-12-01 07:53:15 Functions: 120 125 96.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
bnrinit0 0
dft_bound 0
isprincipalraygen 0
minkowski_bound 0
nf_deg1_prime 0
bnrclassnolist 7
ZM_intersect 14
bnrcompositum 14
bnrlcmcond 14
rnfnormgroup 14
decodemodule 21
discrayabslist 21
is_module 21
rnfconductor 21
bnrclassno_1 28
bnrliftsubgroup 28
chk_listBU 28
compute_M0 28
discrayabslistarch 28
zsimp 28
bnfcertify 35
bnfnarrow 35
bnrisconductor0 35
isprimitive 35
regulatorbound 35
minimforunits 42
bnrdisclist0 49
Hermite_bound 63
bnfcertify0 63
bnrconductor0 63
bound_unit_index 63
init_bad 63
lowerboundforregulator 63
zimmertbound 63
bnrclassno0 105
bnrclassno 112
get_nz 168
bnrdisc0 175
fasmall_append 175
bnrchar_primitive 217
bnrgaloismatrix 231
ABC_to_bnr 273
factordivexact 406
get_NR1D 427
bnrisgalois 448
check_bnrgal 448
subgrouplist_cond_sub 448
get_discdata 469
get_discray 469
bnrmap 518
zsimpjoin 518
bnrchar 560
bnrchar_i 560
bnrconductor 581
bnrconductor_i 581
bnrconductor_factored 616
bnrchar_primitive_raw 630
abmap_char_image 637
rnfconductor0 777
rnfnormgroup_i 777
factorpow 812
abmap_nchar_image 854
bnrconductorofchar 854
ZMV_mul 910
get_classno 910
hdet 1022
rowselect_p 1022
factormul 1043
bnrclassno_all 1106
factorsplice 1169
is_complex 1228
bnr_char_sanitize 1274
vecselect_p 1344
Lbnrclassno 1484
prV_norms 1533
bnrdisc 1610
bnrdisc_i 1610
check_prime 1715
primecertify 1715
is_zero 1804
imageofgroup 1946
bnrsurjection 2604
bnrautmatrix 3087
bnrgaloisapply 3577
bnr_subgroup_sanitize 4200
idealmoddivisor 4214
make_integral_Z 4382
bnrconductor_raw 4501
bnrconductor_factored_i 5117
get_pinvpi 9856
get_pi 9996
bnr_get_Ui 12719
idealmoddivisor_aux 15036
too_big 15484
fast_val 18067
compute_fact 26572
bnr_grp 33341
Buchray 41342
bnrconductormod 41691
cond0_e 46808
condoo_archp 46808
get_Gen 49609
is_unit 70553
bnr_log_gen_arch 85903
subgroup_conductor_ok 95186
subgroupcond 182449
conductor_elts 182897
subgrouplist0 184658
char_denormalize 202426
bnrinitmod 211176
ZM_content_mul 226760
Buchraymod 253326
Buchraymod_i 256663
bnrisconductor 274931
bnr_subgroup_check 312593
contains 401796
isprincipalray 403177
bnrisprincipal 410261
bnr_log_gen_pr 413124
ideallog_to_bnr 499023
ideallog_to_bnr_i 515330
ZM2_ZC2_mul 1336952
bnrisprincipalmod 1454656
bnr_get_El 1459507
bnr_get_U 1838577

Generated by: LCOV version 1.14