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 16624-25b9976) Lines: 1551 1625 95.4 %
Date: 2014-06-24 Functions: 120 125 96.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 973 1202 80.9 %

Function Name Sort by function name Hit count Sort by hit count
F4 720
FpX_FpC_nfpoleval 45
Polred 95
QX_galoisapplymod 45
QX_table_nfpoleval 8812
ZC_galoisapply 2642
ZM_image_shallow 961
ZX_Q_normalize 6945
ZX_Z_normalize 7090
ZX_canon_neg 8002
ZX_is_better 3631
ZX_primitive_to_monic 7095
ZX_to_monic 0
check_ZKmodule 1535
checkabgrp 7905
checkbid 160842
checkbid_i 164295
checkbnf 523279
checkbnf_i 524044
checkbnr 156983
checkbnrgen 0
checknf 3644633
checknf_i 3703235
checknfelt_mod 35902
checkrnf 5140
checksqmat 0
chk_gen 7427
chk_gen_init 221
chk_gen_prec 985
cmp_abs_ZX 2331
complex_norm 3924831
elt_galoisapply 35
embed_T2 1051
embed_norm 1327952
embednorm_T2 5410
factoredpolred 5
factoredpolred2 5
filter 555
findmindisc 220
gal_check_pol 80
galois_res 730
galoisapply 2995
get_Tr 1670
get_bas_den 5624
get_bnf 8895
get_bnfpol 110
get_nf 39630
get_nf_fp_compo 2454
get_nfindex 115
get_nfpol 5400
get_pol 17205
get_polchar 7427
get_red_G 1445
get_roots 4019
get_roots_for_M 4623
get_sign 1670
idealfrobenius 10
idealinertiagroup 15
idealquasifrob 60
idealramgroupindex 10
idealramgroups 70
idealramgroupstame 60
make_G 4623
make_M 4623
make_M_G 4623
make_Tr 930
nf_get_allroots 0
nf_get_prec 16101
nf_input_type 2430
nf_set_multable 1765
nfbasic_add_disc 1660
nfbasic_init 2430
nfbasic_to_nf 1670
nfcertify 5
nffp_init 3899
nfgaloismatrix 1160
nfinit 1095
nfinit0 470
nfinitall 1675
nfinitred 5
nfinitred2 5
nfisincl 30
nfisisom 20
nfiso0 50
nfnewprec 45
nfnewprec_shallow 723
nfpoleval 8096
nfpolred 55
nftyp 25615
polgalois 2150
polgaloisnames 730
polred 20
polred0 50
polred2 5
polred_aux 575
polred_init 770
polredabs 5
polredabs0 225
polredabs2 5
polredabs_aux 215
polredabsall 0
polredbest 415
polredbest_aux 485
polredord 20
pr_galoisapply 5
primes_certify 70
quicktrace 30685
real_norm 4790
remake_GM 724
remove_duplicates 215
rnfpolred_i 45
rnfpolredabs 20
rnfpolredbest 25
roots_to_ZX 964
set_LLL_basis 2375
set_mulid 865
smallpolred 5
smallpolred2 5
store 1740
table_galoisapply 2670
tests_OK 50
transroot 4141
try_polmin 13510
tschirnhaus 2254
vecgaloisapply 5

Generated by: LCOV version 1.9