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.8.0 lcov report (development 18906-a425091) Lines: 1547 1657 93.4 %
Date: 2016-05-06 Functions: 117 132 88.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 984 1219 80.7 %

Function Name Sort by function name Hit count Sort by hit count
F4 1092
FpX_FpC_nfpoleval 1456
Polred 84
QX_galoisapplymod 1456
QX_table_nfpoleval 19544
ZC_galoisapply 10080
ZM_image_shallow 1427
ZX_Q_normalize 11963
ZX_Z_normalize 12215
ZX_canon_neg 10705
ZX_is_better 4600
ZX_primitive_to_monic 12222
ZX_to_monic 0
check_ZKmodule 3164
checkabgrp 11389
checkbid 199785
checkbid_i 205987
checkbnf 684546
checkbnf_i 686681
checkbnr 197230
checkbnrgen 0
checknf 5613266
checknf_i 5834337
checknfelt_mod 83790
checkrnf 205926
checkrnf_i 209090
checksqmat 0
chk_gen 10586
chk_gen_init 344
chk_gen_prec 1435
cmp_abs_ZX 3151
complex_norm 1870191
elt_galoisapply 49
embed_T2 1548
embed_norm 1015013
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 763
findmindisc 343
gal_check_pol 182
galois_res 1057
galoisapply 5047
get_Tr 5145
get_bas_den 13149
get_bnf 13027
get_bnfpol 112
get_nf 62230
get_nf_fp_compo 6264
get_nfindex 616
get_nfpol 14689
get_pol 24715
get_polchar 10586
get_red_G 3479
get_roots 9217
get_roots_for_M 10495
get_sign 5145
idealfrobenius 63
idealfrobenius_aut 3024
idealinertiagroup 42
idealquasifrob 3017
idealramfrobenius 14
idealramgroupindex 14
idealramgroups 119
idealramgroupstame 105
make_G 10495
make_M 10495
make_M_G 10495
make_Tr 2688
nf_get_allroots 0
nf_get_prec 66229
nf_input_type 6237
nf_set_multable 5145
nfbasic_add_disc 5138
nfbasic_init 6237
nfbasic_to_nf 5145
nfcertify 7
nffp_init 9743
nfgaloismatrix 1897
nfgaloispermtobasis 14
nfinit 1274
nfinit0 1673
nfinit_step1 5159
nfinit_step2 5138
nfinitall 3164
nfinitred 0
nfinitred2 0
nfisincl 35
nfisisom 14
nfiso0 49
nfnewprec 63
nfnewprec_shallow 752
nfpoleval 11417
nfpolred 70
nftyp 38255
polgalois 3059
polgaloisnames 1057
polred 14
polred0 70
polred2 0
polred_aux 791
polred_init 1099
polredabs 0
polredabs0 350
polredabs2 0
polredabs_aux 336
polredabsall 0
polredbest 616
polredbest_aux 714
polredord 21
pr_galoisapply 7
primes_certify 84
quicktrace 59458
real_norm 6636
remake_GM 752
remove_duplicates 336
rnfpolred_i 63
rnfpolredabs 28
rnfpolredbest 35
roots_to_ZX 1393
set_LLL_basis 6167
set_mulid 1295
smallpolred 0
smallpolred2 0
store 2471
table_galoisapply 3738
tests_OK 49
transroot 5992
try_polmin 20251
tschirnhaus 3164
typv6 51296
vecgaloisapply 7

Generated by: LCOV version 1.9