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 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 - base1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21064-a7054ad) Lines: 1425 1503 94.8 %
Date: 2017-09-25 06:24:50 Functions: 110 126 87.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpX_FpC_nfpoleval 7945
Polred 84
QX_table_nfpoleval 30642
ZC_galoisapply 30768
ZM_image_shallow 1490
ZX_Q_normalize 19782
ZX_Z_normalize 20034
ZX_canon_neg 25069
ZX_cmp 3151
ZX_is_better 18761
ZX_primitive_to_monic 20048
ZX_to_monic 0
check_ZKmodule 8337
checkabgrp 13286
checkbid 301993
checkbid_i 327564
checkbnf 1043503
checkbnf_i 1046758
checkbnr 371307
checkbnrgen 0
checknf 50575330
checknf_i 51305014
checknfelt_mod 181748
checkrnf 973315
checkrnf_i 977312
checksqmat 0
chk_gen 24999
chk_gen_init 477
chk_gen_prec 1715
cmpii_polred 11167
complex_norm 2909153
elt_galoisapply 49
embed_T2 2199
embed_norm 1344179
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 777
findmindisc 476
gal_check_pol 2380
galoisapply 45034
get_Tr 12866
get_aut 7644
get_bas_den 28077
get_bnf 14938
get_bnfpol 112
get_nf 113869
get_nfindex 917
get_nfpol 41191
get_pol 39849
get_polchar 24999
get_red_G 9408
get_roots 22686
idealfrobenius 63
idealfrobenius_aut 56
idealinertiagroup 1792
idealquasifrob 1393
idealramfrobenius 0
idealramfrobenius_aut 595
idealramgroups 112
idealramgroups_aut 2317
idealramgroupstame 1855
idealramgroupswild 462
make_G 24284
make_M 24284
make_M_G 24284
make_Tr 4592
nf_basden 758
nf_get_allroots 0
nf_get_prec 101092
nf_input_type 12663
nf_multable 12866
nfcertify 7
nffp_init 23520
nfgaloismatrix 27688
nfgaloispermtobasis 1330
nfinit 1813
nfinit0 2184
nfinit_basic 12663
nfinit_basic_partial 1155
nfinit_complete 12859
nfinitall 3997
nfinitred 0
nfinitred2 0
nfisincl 357
nfisisom 21
nfiso0 378
nfmaxord_complete 25725
nfmaxord_to_nf 12866
nfnewprec 63
nfnewprec_shallow 744
nfpoleval 11417
nfpolred 105
nftyp 42350
polred 14
polred0 70
polred2 0
polred_aux 805
polred_init 1246
polredabs 0
polredabs0 483
polredabs2 0
polredabs_aux 469
polredabsall 0
polredbest 616
polredbest_aux 728
polredord 21
pr_galoisapply 7
primes_certify 175
quicktrace 78876
real_norm 11228
remove_duplicates 469
rnfpolred_i 105
rnfpolredabs 70
rnfpolredbest 35
set_LLL_basis 14000
set_mulid 1491
smallpolred 0
smallpolred2 0
store 2604
tests_OK 378
try_polmin 20328
tschirnhaus 3171
typv6 105238
vecgaloisapply 7
zk_galoisapplymod 5495

Generated by: LCOV version 1.11