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 17953-c39f2e6) Lines: 1528 1628 93.9 %
Date: 2015-08-29 Functions: 111 126 88.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 972 1213 80.1 %

Function Name Sort by function name Hit count Sort by hit count
F4 1008
FpX_FpC_nfpoleval 112
Polred 84
QX_galoisapplymod 112
QX_table_nfpoleval 13776
ZC_galoisapply 4459
ZM_image_shallow 1427
ZX_Q_normalize 10745
ZX_Z_normalize 10997
ZX_canon_neg 10670
ZX_is_better 4565
ZX_primitive_to_monic 11004
ZX_to_monic 0
check_ZKmodule 2905
checkabgrp 11305
checkbid 175726
checkbid_i 180794
checkbnf 584876
checkbnf_i 585926
checkbnr 170315
checkbnrgen 0
checknf 5035522
checknf_i 5137096
checknfelt_mod 64316
checkrnf 207501
checkrnf_i 211491
checksqmat 0
chk_gen 10586
chk_gen_init 344
chk_gen_prec 1428
cmp_abs_ZX 3123
complex_norm 2441622
elt_galoisapply 49
embed_T2 1548
embed_norm 1128806
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 756
findmindisc 343
gal_check_pol 161
galois_res 1029
galoisapply 4942
get_Tr 3976
get_bas_den 10761
get_bnf 12866
get_bnfpol 147
get_nf 56707
get_nf_fp_compo 5088
get_nfindex 630
get_nfpol 12331
get_pol 24652
get_polchar 10586
get_red_G 2989
get_roots 7782
get_roots_for_M 8800
get_sign 3976
idealfrobenius 63
idealinertiagroup 21
idealquasifrob 133
idealramgroupindex 14
idealramgroups 98
idealramgroupstame 84
make_G 8800
make_M 8800
make_M_G 8800
make_Tr 1995
nf_get_allroots 0
nf_get_prec 63859
nf_input_type 5061
nf_set_multable 3976
nfbasic_add_disc 3969
nfbasic_init 5061
nfbasic_to_nf 3976
nfcertify 7
nffp_init 8077
nfgaloismatrix 1806
nfinit 2275
nfinit0 1477
nfinitall 3990
nfinitred 0
nfinitred2 0
nfisincl 35
nfisisom 14
nfiso0 49
nfnewprec 63
nfnewprec_shallow 723
nfpoleval 11417
nfpolred 77
nftyp 36624
polgalois 3031
polgaloisnames 1029
polred 14
polred0 70
polred2 0
polred_aux 784
polred_init 1092
polredabs 0
polredabs0 350
polredabs2 0
polredabs_aux 336
polredabsall 0
polredbest 609
polredbest_aux 707
polredord 21
pr_galoisapply 7
primes_certify 84
quicktrace 57225
real_norm 6636
remake_GM 723
remove_duplicates 336
rnfpolred_i 63
rnfpolredabs 28
rnfpolredbest 35
roots_to_ZX 1345
set_LLL_basis 4984
set_mulid 1295
smallpolred 0
smallpolred2 0
store 2471
table_galoisapply 3738
tests_OK 49
transroot 5775
try_polmin 20146
tschirnhaus 3136
vecgaloisapply 7

Generated by: LCOV version 1.9