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.0 lcov report (development 22344-f2bf0a3) Lines: 1534 1614 95.0 %
Date: 2018-04-25 06:16:49 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 7945
Polred 84
QX_table_nfpoleval 30482
ZC_galoisapply 30608
ZM_image_shallow 1616
ZX_Q_mul 2124371
ZX_Q_normalize 20363
ZX_Z_normalize 20615
ZX_canon_neg 25468
ZX_cmp 3592
ZX_is_better 19272
ZX_primitive_to_monic 20650
ZX_to_monic 0
check_ZKmodule 8463
checkabgrp 16884
checkbid 301405
checkbid_i 327102
checkbnf 1040109
checkbnf_i 1043371
checkbnr 369788
checkbnrgen 0
checknf 50636430
checknf_i 51564956
checknfelt_mod 186662
checkrnf 592186
checkrnf_i 596274
checksqmat 0
chk_gen 28422
chk_gen_init 603
chk_gen_prec 1967
cmpii_polred 17488
complex_norm 3026137
elt_galoisapply 49
embed_T2 2493
embed_norm 1369846
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 777
findmindisc 602
gal_check_pol 2380
galoisapply 44874
get_Tr 13272
get_aut 7644
get_bas_den 29141
get_bnf 18655
get_bnfpol 112
get_factor 70
get_nf 114247
get_nfindex 938
get_nfpol 41175
get_pol 43755
get_polchar 28422
get_red_G 9401
get_roots 24118
idealfrobenius 63
idealfrobenius_aut 56
idealinertiagroup 1792
idealquasifrob 1393
idealramfrobenius 0
idealramfrobenius_aut 595
idealramgroups 112
idealramgroups_aut 2317
idealramgroupstame 1855
idealramgroupswild 462
incl_disc 196
make_G 25811
make_M 25811
make_M_G 25811
make_Tr 5131
nf_basden 1760
nf_get_allroots 0
nf_get_prec 103400
nf_input_type 12607
nf_multable 13272
nfcertify 7
nffp_init 24045
nfgaloismatrix 27524
nfgaloispermtobasis 1330
nfinit 1834
nfinit0 2254
nfinit_basic 12607
nfinit_basic_partial 1281
nfinit_complete 13265
nfinitall 4088
nfinitred 0
nfinitred2 0
nfisincl 84
nfisisom 56
nfmaxord_complete 26537
nfmaxord_to_nf 13272
nfnewprec 63
nfnewprec_shallow 1746
nfpoleval 11417
nfpolred 105
nftyp 43337
partmap_reverse 77
polred 14
polred0 70
polred2 0
polred_aux 805
polred_init 1372
polredabs 0
polredabs0 532
polredabs2 0
polredabs_i 609
polredabsall 0
polredbest 609
polredbest_aux 728
polredbest_i 644
polredord 21
pr_galoisapply 7
primes_certify 287
quicktrace 81249
real_norm 11704
remove_duplicates 532
rnfpolred_i 119
rnfpolredabs 84
rnfpolredbest 35
set_LLL_basis 14532
set_mulid 1701
smallpolred 0
smallpolred2 0
tests_OK 119
try_polmin 20328
tschirnhaus 3171
typv6 109753
vecgaloisapply 7
zk_galoisapplymod 5495

Generated by: LCOV version 1.11