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.11.0 lcov report (development 22860-5579deb0b) Lines: 2929 3168 92.5 %
Date: 2018-07-18 05:36:42 Functions: 271 289 93.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_log 0
Fl_log_Fp 0
Fl_log_naive 0
Fl_sqrtl 0
Z_ZV_mod 0
Z_nv_mod 0
Zp_issquare 0
bestappr_frac 0
gcf2 0
gissquare 0
gissquareall 0
nmV_chinese_center_tree 0
order 0
pnqn 0
qfi_log 0
quadclassno 0
rootsof1_Fp 0
sersfcont 0
fibo 7
quadunit 7
quadunit0 7
sqrt_Cipolla 8
get_quad 14
sfcont2 14
update_f 14
chinese_intpol 21
classno2 21
quadregulator 21
sqrt_Cipolla_msqr 23
mod_to_frac 42
odd_prime_divisors 43
remove2 43
Fp_log_index 49
Fp_log_sieve 49
check_kernel 49
chinese1 49
compute_nbgen 49
contfrac0 49
opt_param 49
polmodispower 49
Fp_factored_order 56
bestappr_ser 56
err_oo 56
logint0 56
lucas 56
znorder 63
ZXM_nv_mod_tree 66
nxMV_chinese_center_tree_seq 66
nxMV_polint_center_tree_seq 66
Zp_order 70
mod_to_rfrac 70
bestapprPade 77
bestappr_RgX 77
Fp_pow_init 84
get_PHI 84
Fp_log_find_ind 98
gcf 98
_Fp_rand 112
relative_order 112
znlog_rec 112
geomsum 120
geomsumu 120
qfbclassno0 140
err_p 161
err_prec 196
lift_padic 210
rootsof1u_Fp 217
Fp_ispower 224
znlog 224
Fp_log_find_rel 231
gener_Zp 231
contfracpnqn 238
is_gener_expo 244
Up_ispower 287
nxMV_chinese_center 291
nxMV_polint_center_tree 291
znprimroot 301
ZXC_nv_mod_tree 315
Zn_ispower 329
ZXX_nv_mod_tree 405
nxV_chinese_center_tree 405
lift_intmod 420
handle_pe 427
muls_interval 448
sqrt_Cipolla_sqr 449
kroui 508
equal1 518
is_gener_Fp 519
ECP_psi 525
_computeG 525
hilbert 658
polispower 721
nmV_chinese_center_tree_seq 757
nmV_polint_center_tree_seq 757
Fp_2gener 980
Qp_ispower 1113
_psi 1367
ispolygonal 1386
fa_isfundamental 1407
ispseudoprimepower 1701
Z_ispowerall 1771
Fp_powers 2016
nxV_chinese_center 2021
Z_chinese 2142
U2_issquare 2373
Zn_issquare 2548
addifsmooth1 2583
Fp_2gener_all 2800
fa_quaddisc 2821
quaddisc 2821
Fl_powers 2961
polissquareall 3010
to_ZX 3159
ncV_chinese_center 3760
rootsof1_Fl 3934
nxMV_polint_center_tree_worker 4177
nxCV_polint_center_tree 4492
Up_issquare 4690
ok_q 6705
ramanujantau 7035
get_Fp_field 7371
hclassno6_large 7810
mphilbertoo 9982
Fp_invmBarrett 10092
sisfundamental 10353
uposisfundamental 10583
Fp_order 10676
bestappr 11173
ZM_nv_mod_tree 12016
Fl_order 12096
ZV_chinese 13073
tauprime 14903
chinese 16520
Z_isfundamental 16723
isfundamental 17563
nmV_chinese_center 18360
nmV_polint_center_tree 18360
polint_chinese 18651
Fl_log_naive_pre 19005
Fl_log_pre 19005
unegisfundamental 21211
Fp_pows 21623
_Fp_sqr 23500
pgener_Fp 23590
pgener_Fp_local 24423
choose_sqrt 27543
_Fp_inv 27616
sqrtint 30563
krois 30842
Hspec 36750
Fp_log_sieve_worker 38990
u_is_gener_expo 41981
ZV_chinese_center 42630
u_odd_prime_divisors 42632
u_remove2 42632
hclassno 46088
Fl_lgener_pre_all 46242
hilbertii 53144
Fp_pow_table 55090
_Fp_one 55230
Fp_log_halfgcd 60149
Fp_sqrtn 61301
Fl_sqrtn 64969
Fl_sqrtn_pre 64969
pgener_Zl 69204
pgener_Zp 69209
istotient 70000
gc_chinese 80135
Z_ispow2 80703
nxV_polint_center_tree 90097
ZV_nv_mod_tree 96231
addifsmooth2 99869
is_gener_Fl 105042
Fl_sqrtl_i 109787
Fl_sqrtl_pre 109787
Fl_sqrtl_raw 110495
pgener_Fl 112517
krosi 119997
krouodd 120505
uissquare 120633
hclassno6 121870
pgener_Fl_local 136585
_Fp_s 150543
Fl_2gener_pre 150648
issquare 157871
issquareall 163142
nmV_polint_center_tree_worker 208822
Z_chinese_all 219291
ncV_polint_center_tree 221007
Z_chinese_pre 237890
ulogintall 253486
logintall 261166
_Fp_neg 268331
init_montdata 271196
bestappr_real 277862
chinese1_coprime_Z_aux 296054
Z_chinese_coprime 312899
chinese1_coprime_Z 327120
gen_chinese 327169
Z_factor_listP 350651
Fp_select_red 357932
split_lcm 362162
update_g1 362162
_Fp_equal0 385860
ZX_nv_mod_tree 408812
_mul_remiibar 411007
bestappr_Q 426445
ZV_allpnqn 480802
ZV_chinesetree 481041
ZV_invdivexact 481364
ZV_sqr 481471
ZV_producttree 484963
icopy_lg 488413
Qsfcont 488709
gboundcf 488973
split_exponent 505715
uisprimepower 542220
istotient_i 621565
qfi_Shanks 626556
Fp_log_use_index 713418
Fp_log 747612
isprimepower 840098
isprimepower_i 841799
Z_chinese_post 847109
Z_isanypower_nosmalldiv 864647
Fp_powu 883155
_mul_remii 938678
_Fp_red 1052565
Fp_easylog 1076101
mulu_interval 1208920
_Fp_mul 1247604
_mul2_remiibar 1261749
_Fp_add 1504160
_Fp_rmul 1665214
get_forms 2052496
two_rank 2052496
conductor_part 2052517
Shanks_order 2052545
classno 2054893
corediscfact 2060327
u_chinese_coprime 2159133
u_chinese_post 2159133
Fp_sqrt 2347411
Fp_sqrt_i 2361838
_mul_montred 2460024
Fl_2powu 2491828
find_order 2776995
mpfact 2934675
qfi_order 2941241
_mul2_remii 2997472
_Fp_pow 3179693
ZT_sqr 3198347
Fl_sqrt_pre 3416108
_sqr_remiibar 3823998
Fp_invgen 3894053
Fp_rem_mBarrett 4235005
Fp_dblsqr 4259221
gome 5371380
Fp_pow 5528257
_mul2_montred 5816695
ZV_chinese_tree 5982173
kronecker 6103982
Z_issquareall 6302343
gisanypower 7000182
Z_isanypower 7000841
Z_isanypower_aux 7000841
ispower 7003164
Z_ZV_mod_tree 10295142
_sqr_remii 10533533
Fl_powers_pre 11058898
uissquareall 11726533
qfb_equal1 12943797
carremod 13217162
qfi_pow 18316834
lcmii 19872037
Fl_2powu_pre 20249622
qfi_comp 23025703
Fl_2gener_pre_all 26860016
_sqr_montred 29569416
sqr_primeform 38995259
Fl_powu 43856562
Fl_sqrt 60784452
Fl_sqrt_pre_i 64232245
kross 73601538
Fl_powu_pre 96851343
krouu 109756928
kroiu 342596563
krouu_s 527470527
ome 673183491

Generated by: LCOV version 1.13