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.10.1 lcov report (development 22726-9e20c6a88) Lines: 1523 1603 95.0 %
Date: 2018-06-24 05:36:21 Functions: 113 129 87.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpX_FpC_nfpoleval 8071
Polred 84
QX_table_nfpoleval 30622
ZC_galoisapply 30748
ZM_image_shallow 1651
ZX_Q_mul 2333727
ZX_Q_normalize 20734
ZX_Z_normalize 20986
ZX_canon_neg 25545
ZX_cmp 3634
ZX_is_better 19321
ZX_primitive_to_monic 21021
ZX_to_monic 0
check_ZKmodule 8575
checkabgrp 16926
checkbid 301286
checkbid_i 326976
checkbnf 1041726
checkbnf_i 1044883
checkbnr 370698
checkbnrgen 0
checknf 51626992
checknf_i 52555651
checknfelt_mod 197456
checkrnf 714343
checkrnf_i 718879
checksqmat 0
chk_gen 28513
chk_gen_init 617
chk_gen_prec 1995
cmpii_polred 17866
complex_norm 3026620
elt_galoisapply 49
embed_T2 2549
embed_norm 2951845
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 777
findmindisc 616
gal_check_pol 2450
galoisapply 44909
get_Tr 13811
get_aut 7868
get_bas_den 30247
get_bnf 18872
get_bnfpol 112
get_nf 114499
get_nfindex 1204
get_nfpol 42603
get_pol 43916
get_polchar 28513
get_red_G 9800
get_roots 24816
idealfrobenius 63
idealfrobenius_aut 56
idealinertiagroup 1834
idealquasifrob 1435
idealramfrobenius 0
idealramfrobenius_aut 616
idealramgroups 112
idealramgroups_aut 2387
idealramgroupstame 1897
idealramgroupswild 490
incl_disc 238
make_G 26602
make_M 26602
make_M_G 26602
make_Tr 5285
nf_basden 1599
nf_get_allroots 0
nf_get_prec 233434
nf_input_type 13062
nf_multable 13811
nf_rnfeq_partial 35
nfcertify 7
nffp_init 24997
nfgaloismatrix 27559
nfgaloispermtobasis 1372
nfinit 2100
nfinit0 2436
nfinit_basic 13062
nfinit_basic_partial 1295
nfinit_complete 13804
nfinitall 4536
nfinitred 0
nfinitred2 0
nfisincl 98
nfisisom 63
nfmaxord_complete 27615
nfmaxord_to_nf 13811
nfnewprec 63
nfnewprec_shallow 1585
nfpoleval 11417
nfpolred 105
nftyp 43393
partmap_reverse 98
polred 14
polred0 70
polred2 0
polred_aux 805
polred_init 1386
polredabs 0
polredabs0 539
polredabs2 0
polredabs_i 623
polredabsall 0
polredbest 609
polredbest_aux 728
polredbest_i 644
polredord 21
pr_galoisapply 7
primes_certify 294
quicktrace 83258
real_norm 11767
remove_duplicates 539
rnfpolred_i 126
rnfpolredabs 91
rnfpolredbest 35
set_LLL_basis 15085
set_mulid 1736
smallpolred 0
smallpolred2 0
tests_OK 140
try_polmin 20328
tschirnhaus 3178
typv6 109627
vecgaloisapply 7
zk_galoisapplymod 5509

Generated by: LCOV version 1.13