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 17110-9967e23) Lines: 1524 1623 93.9 %
Date: 2014-11-26 Functions: 110 125 88.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 963 1204 80.0 %

Function Name Sort by function name Hit count Sort by hit count
F4 720
FpX_FpC_nfpoleval 45
Polred 60
QX_galoisapplymod 45
QX_table_nfpoleval 9055
ZC_galoisapply 2690
ZM_image_shallow 964
ZX_Q_normalize 6995
ZX_Z_normalize 7140
ZX_canon_neg 7412
ZX_is_better 3161
ZX_primitive_to_monic 7165
ZX_to_monic 0
check_ZKmodule 1540
checkabgrp 8060
checkbid 124741
checkbid_i 128261
checkbnf 415186
checkbnf_i 415936
checkbnr 120861
checkbnrgen 0
checknf 3350079
checknf_i 3409874
checknfelt_mod 37240
checkrnf 5140
checksqmat 0
chk_gen 7417
chk_gen_init 211
chk_gen_prec 935
cmp_abs_ZX 2146
complex_norm 1731184
elt_galoisapply 35
embed_T2 1001
embed_norm 769121
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 525
findmindisc 210
gal_check_pol 80
galois_res 735
galoisapply 3070
get_Tr 1785
get_bas_den 5613
get_bnf 9050
get_bnfpol 105
get_nf 40240
get_nf_fp_compo 2529
get_nfindex 110
get_nfpol 6825
get_pol 16580
get_polchar 7417
get_red_G 1545
get_roots 3931
get_roots_for_M 4622
get_sign 1785
idealfrobenius 10
idealinertiagroup 15
idealquasifrob 60
idealramgroupindex 10
idealramgroups 70
idealramgroupstame 60
make_G 4622
make_M 4622
make_M_G 4622
make_Tr 920
nf_get_allroots 0
nf_get_prec 15704
nf_input_type 2520
nf_set_multable 1880
nfbasic_add_disc 1780
nfbasic_init 2520
nfbasic_to_nf 1785
nfcertify 5
nffp_init 4074
nfgaloismatrix 1190
nfinit 1090
nfinit0 550
nfinitall 1795
nfinitred 0
nfinitred2 0
nfisincl 25
nfisisom 10
nfiso0 35
nfnewprec 45
nfnewprec_shallow 548
nfpoleval 8155
nfpolred 45
nftyp 25695
polgalois 2165
polgaloisnames 735
polred 10
polred0 50
polred2 0
polred_aux 545
polred_init 730
polredabs 0
polredabs0 215
polredabs2 0
polredabs_aux 205
polredabsall 0
polredbest 430
polredbest_aux 490
polredord 15
pr_galoisapply 5
primes_certify 60
quicktrace 35075
real_norm 4740
remake_GM 548
remove_duplicates 205
rnfpolred_i 45
rnfpolredabs 20
rnfpolredbest 25
roots_to_ZX 961
set_LLL_basis 2465
set_mulid 855
smallpolred 0
smallpolred2 0
store 1730
table_galoisapply 2670
tests_OK 35
transroot 4125
try_polmin 12835
tschirnhaus 2240
vecgaloisapply 5

Generated by: LCOV version 1.9