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 21947-4fc3047) Lines: 1469 1543 95.2 %
Date: 2018-02-24 06:16:21 Functions: 112 128 87.5 %
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 30425
ZC_galoisapply 30551
ZM_image_shallow 1616
ZX_Q_mul 2072920
ZX_Q_normalize 20048
ZX_Z_normalize 20300
ZX_canon_neg 25370
ZX_cmp 3592
ZX_is_better 19272
ZX_primitive_to_monic 20335
ZX_to_monic 0
check_ZKmodule 8463
checkabgrp 16863
checkbid 300068
checkbid_i 325716
checkbnf 1030832
checkbnf_i 1034094
checkbnr 365882
checkbnrgen 0
checknf 50610357
checknf_i 51342323
checknfelt_mod 182014
checkrnf 591297
checkrnf_i 595336
checksqmat 0
chk_gen 28324
chk_gen_init 547
chk_gen_prec 1855
cmpii_polred 17488
complex_norm 2938899
elt_galoisapply 49
embed_T2 2381
embed_norm 1345442
embednorm_T2 0
factoredpolred 0
factoredpolred2 0
filter 777
findmindisc 546
gal_check_pol 2380
galoisapply 44817
get_Tr 13055
get_aut 7644
get_bas_den 28595
get_bnf 18627
get_bnfpol 112
get_factor 70
get_nf 114226
get_nfindex 924
get_nfpol 40477
get_pol 43545
get_polchar 28324
get_red_G 9275
get_roots 23773
idealfrobenius 63
idealfrobenius_aut 56
idealinertiagroup 1792
idealquasifrob 1393
idealramfrobenius 0
idealramfrobenius_aut 595
idealramgroups 112
idealramgroups_aut 2317
idealramgroupstame 1855
idealramgroupswild 462
make_G 25409
make_M 25409
make_M_G 25409
make_Tr 4984
nf_basden 1757
nf_get_allroots 0
nf_get_prec 102175
nf_input_type 12509
nf_multable 13055
nfcertify 7
nffp_init 23646
nfgaloismatrix 27471
nfgaloispermtobasis 1330
nfinit 1813
nfinit0 2226
nfinit_basic 12509
nfinit_basic_partial 1225
nfinit_complete 13048
nfinitall 4039
nfinitred 0
nfinitred2 0
nfisincl 49
nfisisom 21
nfiso0 70
nfmaxord_complete 26103
nfmaxord_to_nf 13055
nfnewprec 63
nfnewprec_shallow 1743
nfpoleval 11417
nfpolred 105
nftyp 43309
polred 14
polred0 70
polred2 0
polred_aux 805
polred_init 1316
polredabs 0
polredabs0 476
polredabs2 0
polredabs_i 553
polredabsall 0
polredbest 609
polredbest_aux 728
polredbest_i 644
polredord 21
pr_galoisapply 7
primes_certify 231
quicktrace 82432
real_norm 11592
remove_duplicates 476
rnfpolred_i 119
rnfpolredabs 84
rnfpolredbest 35
set_LLL_basis 14259
set_mulid 1645
smallpolred 0
smallpolred2 0
tests_OK 70
try_polmin 20328
tschirnhaus 3171
typv6 109739
vecgaloisapply 7
zk_galoisapplymod 5495

Generated by: LCOV version 1.11