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 - arith1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20777-d2a9243) Lines: 2723 2946 92.4 %
Date: 2017-06-25 05:59:24 Functions: 240 256 93.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre 126831
Fl_2gener_pre_all 22548342
Fl_2powu 4871732
Fl_2powu_pre 13773470
Fl_lgener_pre_all 63166
Fl_order 5327
Fl_powers 1520
Fl_powers_pre 8310954
Fl_powu 23903778
Fl_powu_pre 78961489
Fl_sqrt 50904341
Fl_sqrt_pre 3511651
Fl_sqrt_pre_i 54427594
Fl_sqrtl 0
Fl_sqrtl_i 115656
Fl_sqrtl_pre 115657
Fp_2gener 0
Fp_2gener_all 5190
Fp_dblsqr 474075
Fp_easylog 3008114
Fp_factored_order 56
Fp_invmBarrett 4970
Fp_ispower 238
Fp_log 1776906
Fp_log_find_ind 98
Fp_log_find_rel 245
Fp_log_halfgcd 59795
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 36945
Fp_log_use_index 1879341
Fp_order 32663
Fp_pow 11345055
Fp_powers 1624
Fp_pows 21014
Fp_powu 993198
Fp_rem_mBarrett 330990
Fp_select_red 384660
Fp_sqrt 2331790
Fp_sqrt_i 2331790
Fp_sqrtn 63442
Hspec 36806
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1703609
U2_issquare 2373
Up_ispower 301
Up_issquare 4690
ZT_sqr 683128
ZV_allpnqn 352863
ZV_chinese 24325
ZV_chinese_tree 39733
ZV_chinesetree 69011
ZV_invdivexact 69017
ZV_polint_center_tree 2138173
ZV_polint_tree 2189411
ZV_producttree 69020
ZV_sqr 69018
ZX_nv_mod_tree 44269
Z_ZV_mod 0
Z_ZV_mod_tree 772586
Z_chinese 2142
Z_chinese_all 199856
Z_chinese_coprime 1050
Z_chinese_post 826598
Z_chinese_pre 218455
Z_factor_listP 350651
Z_isanypower 7000819
Z_isanypower_aux 7000819
Z_isanypower_nosmalldiv 864570
Z_isfundamental 16338
Z_ispow2 29649
Z_ispowerall 1505
Z_issquareall 5911556
Z_nv_mod 0
Zn_ispower 329
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 997162
_Fp_equal0 521974
_Fp_inv 18501
_Fp_mul 1348371
_Fp_neg 107441
_Fp_one 104
_Fp_pow 8562574
_Fp_rand 946
_Fp_red 971871
_Fp_rmul 1236143
_Fp_s 82036
_Fp_sqr 948
_mul2_montred 1109538
_mul2_remii 456529
_mul2_remiibar 17546
_mul_montred 1322120
_mul_remii 252903
_mul_remiibar 8567
_psi 1367
_sqr_montred 13657071
_sqr_remii 3747845
_sqr_remiibar 322423
addifsmooth1 2489
addifsmooth2 95007
bestappr 15045
bestapprPade 63
bestappr_Q 413636
bestappr_RgX 63
bestappr_frac 0
bestappr_real 259704
bestappr_real_max 287
bestappr_ser 49
carremod 13447245
check_kernel 49
chinese 16520
chinese1 175
chinese1_coprime_Z 755955
chinese1_coprime_Z_aux 606827
chinese_intpol 21
classno 1705544
classno2 21
conductor_part 1703581
contfrac0 49
contfracpnqn 126
corediscfact 1711384
equal1 518
err_oo 56
err_p 161
err_prec 196
fa_isfundamental 1407
fibo 7
find_order 2304607
gboundcf 359718
gc_chinese 69010
gcf 0
gcf2 0
gen_chinese 756130
gener_Zp 231
geomsum 120
geomsumu 120
get_Fp_field 4578
get_PHI 84
get_forms 1703560
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 4408128
handle_pe 441
hclassno 37709
hclassno6 113638
hclassno6_large 7803
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 301944
is_gener_Fl 109650
is_gener_Fp 95
is_gener_expo 34
isfundamental 17185
ispolygonal 1386
ispower 7002975
isprimepower 840098
isprimepower_i 841996
ispseudoprimepower 1898
issquare 143122
issquareall 147406
istotient 70000
istotient_i 621565
krois 28231
kroiu 287070442
kronecker 5048502
krosi 91595
kross 64679546
kroui 85
krouodd 91680
krouu 97778826
krouu_s 448030380
lcmii 7344921
lift_intmod 420
lift_padic 210
logint0 56
logintall 258728
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 2333864
mphilbertoo 9982
muls_interval 448
mulu_interval 983926
ncV_chinese_center 2836
ncV_polint_center_tree 41043
nmV_chinese_center 2118
nmV_polint_center_tree 2118
nmV_polint_center_tree_worker 38219
odd_prime_divisors 43
ok_q 5606
ome 580808340
opt_param 49
order 0
pgener_Fl 112109
pgener_Fl_local 134630
pgener_Fp 23331
pgener_Fp_local 23884
pgener_Zl 69918
pgener_Zp 69923
pnqn 0
polispower 497
polissquareall 2275
polmodispower 126
qfb_equal1 10795966
qfbclassno0 140
qfi_Shanks 529466
qfi_comp 19289173
qfi_log 0
qfi_order 2457632
qfi_pow 15279709
quadclassno 0
quaddisc 7
quadregulator 21
quadunit 7
quadunit0 7
ramanujantau 7147
relative_order 112
remove2 43
rootsof1_Fl 2436
rootsof1_Fp 0
rootsof1u_Fp 7
sersfcont 0
sfcont2 14
sisfundamental 10451
split_exponent 505729
split_lcm 300436
sqr_primeform 32365853
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 39439
tauprime 15036
two_rank 1703560
u_chinese_coprime 57414
u_chinese_post 57414
u_is_gener_expo 41244
u_odd_prime_divisors 41166
u_remove2 41167
uisprimepower 541751
uissquare 120651
uissquareall 11981659
ulogintall 251169
unegisfundamental 20329
update_f 14
update_g1 300436
uposisfundamental 10240
znlog 224
znlog_rec 112
znorder 63
znprimroot 301

Generated by: LCOV version 1.11