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-bordeaux1.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 16912-212c0f0) Lines: 1526 1625 93.9 %
Date: 2014-10-20 Functions: 110 125 88.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 964 1206 79.9 %

Function Name Sort by function name Hit count Sort by hit count
F4 1008
FpX_FpC_nfpoleval 63
Polred 84
QX_galoisapplymod 63
QX_table_nfpoleval 11914
ZC_galoisapply 3556
ZM_image_shallow 1308
ZX_Q_normalize 9429
ZX_Z_normalize 9625
ZX_canon_neg 10257
ZX_is_better 4362
ZX_primitive_to_monic 9639
ZX_to_monic 0
check_ZKmodule 2086
checkabgrp 11067
checkbid 170505
checkbid_i 175356
checkbnf 567088
checkbnf_i 568138
checkbnr 165101
checkbnrgen 0
checknf 4460155
checknf_i 4542090
checknfelt_mod 49497
checkrnf 7196
checksqmat 0
chk_gen 10313
chk_gen_init 288
chk_gen_prec 1274
cmp_abs_ZX 2955
complex_norm 1201209
elt_galoisapply 49
embed_T2 1373
embed_norm 728623
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 714
findmindisc 287
gal_check_pol 112
galois_res 1015
galoisapply 4074
get_Tr 2191
get_bas_den 7283
get_bnf 12453
get_bnfpol 147
get_nf 55489
get_nf_fp_compo 3205
get_nfindex 154
get_nfpol 7203
get_pol 23021
get_polchar 10313
get_red_G 1890
get_roots 5136
get_roots_for_M 5959
get_sign 2191
idealfrobenius 14
idealinertiagroup 21
idealquasifrob 84
idealramgroupindex 14
idealramgroups 98
idealramgroupstame 84
make_G 5959
make_M 5959
make_M_G 5959
make_Tr 1225
nf_get_allroots 0
nf_get_prec 19403
nf_input_type 3192
nf_set_multable 2324
nfbasic_add_disc 2184
nfbasic_init 3192
nfbasic_to_nf 2191
nfcertify 7
nffp_init 5095
nfgaloismatrix 1540
nfinit 1407
nfinit0 658
nfinitall 2205
nfinitred 0
nfinitred2 0
nfisincl 35
nfisisom 14
nfiso0 49
nfnewprec 63
nfnewprec_shallow 864
nfpoleval 11417
nfpolred 63
nftyp 35861
polgalois 3003
polgaloisnames 1015
polred 14
polred0 70
polred2 0
polred_aux 742
polred_init 994
polredabs 0
polredabs0 294
polredabs2 0
polredabs_aux 280
polredabsall 0
polredbest 581
polredbest_aux 665
polredord 21
pr_galoisapply 7
primes_certify 84
quicktrace 41965
real_norm 6636
remake_GM 864
remove_duplicates 280
rnfpolred_i 63
rnfpolredabs 28
rnfpolredbest 35
roots_to_ZX 1332
set_LLL_basis 3115
set_mulid 1162
smallpolred 0
smallpolred2 0
store 2415
table_galoisapply 3738
tests_OK 49
transroot 5698
try_polmin 17773
tschirnhaus 3136
vecgaloisapply 7

Generated by: LCOV version 1.9