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 20296-0a10b35) Lines: 1350 1450 93.1 %
Date: 2017-02-26 05:50:47 Functions: 107 122 87.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpX_FpC_nfpoleval 2758
Polred 84
QX_galoisapplymod 2758
QX_table_nfpoleval 58787
ZC_galoisapply 47659
ZM_image_shallow 1427
ZX_Q_normalize 12740
ZX_Z_normalize 12992
ZX_canon_neg 10691
ZX_is_better 4579
ZX_primitive_to_monic 13006
ZX_to_monic 0
check_ZKmodule 3143
checkabgrp 11522
checkbid 223264
checkbid_i 228570
checkbnf 741454
checkbnf_i 744688
checkbnr 214794
checkbnrgen 0
checknf 14781771
checknf_i 15617841
checknfelt_mod 203133
checkrnf 208600
checkrnf_i 211680
checksqmat 0
chk_gen 10593
chk_gen_init 351
chk_gen_prec 1456
cmp_abs_ZX 3137
complex_norm 2881116
elt_galoisapply 49
embed_T2 1583
embed_norm 1278635
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 770
findmindisc 350
gal_check_pol 189
galoisapply 31566
get_Tr 5565
get_bas_den 14000
get_bnf 13174
get_bnfpol 112
get_nf 124509
get_nfindex 546
get_nfpol 17475
get_pol 24743
get_polchar 10593
get_red_G 3633
get_roots 9769
idealfrobenius 63
idealfrobenius_aut 5810
idealinertiagroup 49
idealquasifrob 5719
idealramfrobenius 21
idealramgroupindex 14
idealramgroups 126
idealramgroupstame 112
make_G 11087
make_M 11087
make_M_G 11087
make_Tr 2954
nf_get_allroots 0
nf_get_prec 71734
nf_input_type 5446
nf_multable 5565
nfcertify 7
nffp_init 10311
nfgaloismatrix 2327
nfgaloispermtobasis 21
nfinit 1358
nfinit0 1722
nfinit_basic 5446
nfinit_basic_partial 1029
nfinit_complete 5558
nfinitall 3080
nfinitred 0
nfinitred2 0
nfisincl 35
nfisisom 21
nfiso0 56
nfmaxord_complete 11123
nfmaxord_to_nf 5565
nfnewprec 63
nfnewprec_shallow 756
nfpoleval 11417
nfpolred 84
nftyp 41769
polred 14
polred0 70
polred2 0
polred_aux 798
polred_init 1113
polredabs 0
polredabs0 357
polredabs2 0
polredabs_aux 343
polredabsall 0
polredbest 616
polredbest_aux 721
polredord 21
pr_galoisapply 7
primes_certify 91
quicktrace 52577
real_norm 6671
remove_duplicates 343
rnfpolred_i 63
rnfpolredabs 28
rnfpolredbest 35
set_LLL_basis 6587
set_mulid 1302
smallpolred 0
smallpolred2 0
store 2478
table_galoisapply 3738
tests_OK 56
try_polmin 20272
tschirnhaus 3164
typv6 103208
vecgaloisapply 7

Generated by: LCOV version 1.11