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.8.0 lcov report (development 18948-dd2a64a) Lines: 2631 2844 92.5 %
Date: 2016-05-27 Functions: 229 243 94.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1794 2317 77.4 %

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 8121621
Fl_lgener_pre_all 15448
Fl_order 5110
Fl_powers 884
Fl_powers_pre 3603718
Fl_powu 24521893
Fl_powu_pre 31877533
Fl_sqrt 19260164
Fl_sqrt_i 19976328
Fl_sqrt_pre 718753
Fl_sqrtl 0
Fl_sqrtl_i 43169
Fl_sqrtl_pre 43169
Fp_dblsqr 386643
Fp_easylog 217582
Fp_factored_order 56
Fp_invmBarrett 5164
Fp_ispower 210
Fp_log 205194
Fp_log_find_ind 98
Fp_log_find_rel 266
Fp_log_halfgcd 61670
Fp_log_index 49
Fp_log_sieve_h 36862
Fp_log_use_index 191823
Fp_order 11157
Fp_pow 2484358
Fp_powers 896
Fp_pows 20972
Fp_powu 827317
Fp_rem_mBarrett 316683
Fp_select_red 312325
Fp_sqrt 1645495
Fp_sqrtn 2919
Hspec 36750
Qp_ispower 1113
Qsfcont 530100
Shanks_order 429939
U2_issquare 2373
Up_ispower 294
Up_issquare 4690
ZT_sqr 909294
ZV_allpnqn 522221
ZV_chinese 103310
ZV_chinese_tree 46254
ZV_chinesetree 151051
ZV_invdivexact 151054
ZV_polint_center_tree 1281337
ZV_polint_tree 1434355
ZV_producttree 151052
ZV_sqr 151053
ZX_nv_mod_tree 58311
Z_ZV_mod 0
Z_ZV_mod_tree 771609
Z_chinese 2142
Z_chinese_all 368214
Z_chinese_coprime 86009
Z_chinese_post 546341
Z_chinese_pre 386813
Z_factor_listP 350651
Z_isanypower 7000630
Z_isanypower_aux 7000630
Z_isanypower_nosmalldiv 864316
Z_isfundamental 14896
Z_ispow2 31136
Z_ispowerall 1498
Z_issquareall 3349431
Z_nv_mod 0
Zn_ispower 322
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 944352
_Fp_equal0 526253
_Fp_inv 18323
_Fp_mul 165683
_Fp_neg 103113
_Fp_one 12
_Fp_pow 612134
_Fp_rand 413
_Fp_red 935783
_Fp_rmul 1181019
_Fp_s 82540
_Fp_sqr 96
_mul2_montred 809928
_mul2_remii 382407
_mul2_remiibar 4236
_mul_montred 1237812
_mul_remii 240621
_mul_remiibar 8403
_psi 1367
_sqr_montred 11852145
_sqr_remii 3629498
_sqr_remiibar 308280
addifsmooth1 37401
addifsmooth2 253358
bestappr 8024
bestapprPade 63
bestappr_Q 292419
bestappr_RgX 63
bestappr_frac 0
bestappr_real 198336
bestappr_real_max 28
bestappr_ser 49
carremod 8756112
check_kernel 49
chinese 16520
chinese1 49
chinese1_coprime_Z 101561
chinese1_coprime_Z_aux 73253
chinese_intpol 21
classno 430435
classno2 21
conductor_part 429911
contfrac0 49
contfracpnqn 126
corediscfact 470106
eps 18445
equal1 518
err_oo 56
err_p 161
err_prec 196
fibo 7
find_order 580001
gboundcf 530105
gc_chinese 151051
gcf 0
gcf2 0
gen_chinese 101610
gener_Zp 287
geomsum 6083
get_Fp_field 4557
get_PHI 84
get_forms 429890
get_quad 14
gisanypower 7000161
gissquare 0
gissquareall 0
gome 3129525
handle_pe 434
hclassno 48902
hclassno2 3445
hilbert 658
hilbertii 53144
icopy_lg 529811
init_montdata 239611
is_gener_Fl 53260
is_gener_Fp 149
is_gener_expo 33
isfundamental 14336
ispolygonal 1386
ispower 7002947
isprimepower 840098
isprimepower_i 841617
ispseudoprimepower 1519
issquare 143010
issquareall 146181
istotient 70000
istotient_i 621565
krois 27216
kroiu 84467686
kronecker 5009876
krosi 30833
kross 5111544
kroui 119
krouodd 30952
krouu 31156541
krouu_s 125847434
lcmii 3341434
lift_intmod 420
lift_padic 210
logint 338513
logint0 42
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 2202087
mphilbertoo 9982
muls_interval 161
mulu_interval 927715
myh 36750
ncV_chinese_center 934
ncV_polint_center_tree 12024
nmV_chinese_center 553
nmV_polint_center_tree 553
nmV_polint_center_tree_worker 11091
odd_prime_divisors 42
ok_q 1539
ome 204146436
opt_param 49
order 0
pgener_Fl 43188
pgener_Fl_local 51454
pgener_Fp 7042
pgener_Fp_local 7574
pgener_Zl 3720
pgener_Zp 3724
pnqn 0
polispower 497
polissquareall 1603
polmodispower 126
qfb_equal1 1779929
qfbclassno0 140
qfi_Shanks 76022
qfi_comp 4832022
qfi_log 0
qfi_order 258005
qfi_pow 2844054
quaddisc 7
quadregulator 21
quadunit 7
ramanujantau 7035
relative_order 112
remove2 42
rootsof1_Fl 1680
rootsof1_Fp 0
rootsof1u_Fp 301
sersfcont 0
sfcont2 14
sisfundamental 1036
split_exponent 505729
split_lcm 74968
sqr_primeform 8167485
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 38151
tauprime 14903
two_rank 429890
u_is_gener_expo 21495
u_odd_prime_divisors 21257
u_remove2 21257
uisprimepower 541663
uissquare 115431
uissquareall 8590207
unegisfundamental 10769
update_f 14
update_g1 74968
uposisfundamental 7174
znlog 217
znlog_rec 112
znorder 63
znprimroot 357

Generated by: LCOV version 1.9