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-bordeaux1.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 17960-0cd23ba) Lines: 2542 2756 92.2 %
Date: 2015-09-03 Functions: 214 228 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1727 2246 76.9 %

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 7945225
Fl_lgener_pre_all 15381
Fl_order 4900
Fl_powers 104
Fl_powers_pre 3621585
Fl_powu 23780888
Fl_powu_pre 30983872
Fl_sqrt 18800757
Fl_sqrt_i 19516681
Fl_sqrt_pre 715924
Fl_sqrtl 0
Fl_sqrtl_i 43299
Fl_sqrtl_pre 43299
Fp_easylog 181249
Fp_factored_order 49
Fp_invmBarrett 6384
Fp_ispower 168
Fp_log 191706
Fp_log_find_ind 84
Fp_log_find_rel 214
Fp_log_halfgcd 62565
Fp_log_index 42
Fp_log_sieve_h 36127
Fp_log_use_index 164731
Fp_order 10990
Fp_pow 2361539
Fp_powers 112
Fp_pows 14343
Fp_powu 993003
Fp_rem_mBarrett 325210
Fp_select_red 312055
Fp_sqrt 1633926
Fp_sqrtn 1708
Qsfcont 2414689
Shanks_order 429939
U2_issquare 2373
Up_ispower 252
Up_issquare 4690
ZT_sqr 863763
ZV_allpnqn 423311
ZV_chinese 99308
ZV_chinese_tree 46005
ZV_chinesetree 145866
ZV_invdivexact 145866
ZV_polint_center_tree 1288793
ZV_polint_tree 1434106
ZV_producttree 145866
ZV_sqr 145866
ZX_nv_mod_tree 57936
Z_ZV_mod 0
Z_ZV_mod_tree 767176
Z_chinese 2142
Z_chinese_all 108055
Z_chinese_coprime 424305
Z_chinese_post 616638
Z_chinese_pre 126605
Z_factor_listP 350651
Z_isanypower 7000581
Z_isanypower_aux 7000581
Z_isanypower_nosmalldiv 864309
Z_isfundamental 14574
Z_ispow2 24995
Z_ispowerall 1085
Z_issquareall 3282029
Z_nv_mod 0
Zn_ispower 280
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 945086
_Fp_equal0 526399
_Fp_inv 18399
_Fp_mul 142014
_Fp_neg 103467
_Fp_one 8
_Fp_pow 485114
_Fp_rand 406
_Fp_red 936805
_Fp_rmul 1182039
_Fp_s 82572
_Fp_sqr 60
_m2sqr 2487627
_montred 12664597
_mul 866823
_muli2montred 1874609
_muli2red 2487618
_psi 1234
_remii 4223955
_remiibar 325210
_sqr 13618917
addifsmooth1 36596
addifsmooth2 248990
bestappr 7837
bestapprPade 63
bestappr_Q 299544
bestappr_RgX 63
bestappr_frac 0
bestappr_real 195607
bestappr_real_max 28
bestappr_ser 49
carremod 8672936
check_kernel 42
chinese 16471
chinese1 42
chinese1_coprime_Z 75701
chinese1_coprime_Z_aux 65721
classno 430435
classno2 21
conductor_part 429911
contfrac0 49
contfracpnqn 126
corediscfact 430080
eps 18445
equal1 518
err_oo 56
err_p 161
err_prec 196
fibo 7
find_order 580001
gboundcf 2414484
gcf 0
gcf2 0
gener_Zp 224
get_Fp_field 4589
get_PHI 77
get_forms 429890
get_quad 14
gisanypower 7000161
gissquare 0
gissquareall 0
gome 3057022
handle_pe 392
hclassno 9870
hclassno2 169
hilbert 658
hilbertii 53144
icopy_lg 2414400
init_montdata 234877
is_gener_Fl 53177
is_gener_Fp 113
is_gener_expo 33
isfundamental 14021
ispolygonal 1386
ispower 7002198
isprimepower 840091
isprimepower_i 841536
ispseudoprimepower 1443
issquare 142996
issquareall 145467
istotient 70000
istotient_i 621565
krois 528
kroiu 82517332
kronecker 4971352
krosi 29886
kross 5108506
kroui 110
krouodd 29996
krouu 32406626
krouu_s 125011502
lcmii 2701416
lift_intmod 420
lift_padic 210
logint 215166
logint0 42
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 457005
mphilbertoo 9982
mulu_interval 328079
ncV_polint_center_tree 11095
nmV_chinese_center 553
nmV_polint_center_tree 553
odd_prime_divisors 35
ok_q 1539
ome 202495761
opt_param 42
order 0
pgener_Fl 40815
pgener_Fl_local 50866
pgener_Fp 9646
pgener_Fp_local 10143
pgener_Zl 52
pgener_Zp 56
pnqn 0
polispower 329
polissquareall 1253
qfbclassno0 140
qfi_Shanks 76022
qfi_comp 4832022
qfi_equal1 1779929
qfi_log 0
qfi_order 258005
qfi_pow 2844054
quaddisc 7
quadregulator 21
quadunit 7
relative_order 112
remove2 35
rootsof1_Fl 546
rootsof1_Fp 0
rootsof1u_Fp 315
sersfcont 0
sfcont2 14
split_exponent 505722
split_lcm 74968
sqr_primeform 8167485
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 20196
two_rank 429890
u_is_gener_expo 21810
u_odd_prime_divisors 20508
u_remove2 20508
uisprimepower 541586
uissquare 115604
uissquareall 8507015
unegisfundamental 10447
update_f 14
update_g1 74968
uposisfundamental 6293
znlog 203
znlog_rec 105
znorder 63
znprimroot 294
znstar 3626

Generated by: LCOV version 1.9