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 20459-9710128) Lines: 2646 2914 90.8 %
Date: 2017-04-28 05:33:48 Functions: 230 249 92.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 18606203
Fl_2powu 2367555
Fl_2powu_pre 11275237
Fl_lgener_pre_all 50677
Fl_order 4566
Fl_powers 1356
Fl_powers_pre 6760182
Fl_powu 11275263
Fl_powu_pre 65053524
Fl_sqrt 42412394
Fl_sqrt_i 45192757
Fl_sqrt_pre 2785065
Fl_sqrtl 0
Fl_sqrtl_i 93709
Fl_sqrtl_pre 93710
Fp_dblsqr 15012
Fp_easylog 168118
Fp_factored_order 48
Fp_invmBarrett 0
Fp_ispower 198
Fp_log 184025
Fp_log_find_ind 84
Fp_log_find_rel 211
Fp_log_halfgcd 51775
Fp_log_index 42
Fp_log_sieve 42
Fp_log_sieve_worker 31681
Fp_log_use_index 138939
Fp_order 9175
Fp_pow 2094328
Fp_powers 1392
Fp_pows 18012
Fp_powu 815824
Fp_rem_mBarrett 0
Fp_select_red 280382
Fp_sqrt 1993805
Fp_sqrtn 54234
Hspec 31500
Qp_ispower 954
Qsfcont 308304
Shanks_order 1425684
U2_issquare 2034
Up_ispower 252
Up_issquare 4020
ZT_sqr 507272
ZV_allpnqn 302454
ZV_chinese 19650
ZV_chinese_tree 27333
ZV_chinesetree 51123
ZV_invdivexact 51123
ZV_polint_center_tree 1818417
ZV_polint_tree 1848001
ZV_producttree 51123
ZV_sqr 51123
ZX_nv_mod_tree 30410
Z_ZV_mod 0
Z_ZV_mod_tree 527877
Z_chinese 1836
Z_chinese_all 206976
Z_chinese_coprime 900
Z_chinese_post 280968
Z_chinese_pre 222918
Z_factor_listP 300558
Z_isanypower 6000702
Z_isanypower_aux 6000702
Z_isanypower_nosmalldiv 739002
Z_isfundamental 12798
Z_ispow2 21780
Z_ispowerall 1290
Z_issquareall 5043850
Z_nv_mod 0
Zn_ispower 276
Zn_issquare 2184
Zp_issquare 0
Zp_order 60
_Fp_add 753542
_Fp_equal0 406426
_Fp_inv 12760
_Fp_mul 142661
_Fp_neg 85062
_Fp_one 36
_Fp_pow 496225
_Fp_rand 822
_Fp_red 770821
_Fp_rmul 943956
_Fp_s 47926
_Fp_sqr 468
_mul2_montred 1087366
_mul2_remii 15012
_mul2_remiibar 0
_mul_montred 1272526
_mul_remii 14736
_mul_remiibar 0
_psi 1170
_sqr_montred 12550320
_sqr_remii 902313
_sqr_remiibar 0
addifsmooth1 2132
addifsmooth2 81436
bestappr 7236
bestapprPade 54
bestappr_Q 321348
bestappr_RgX 54
bestappr_frac 0
bestappr_real 219699
bestappr_real_max 18
bestappr_ser 42
carremod 8628106
check_kernel 42
chinese 14160
chinese1 42
chinese1_coprime_Z 86421
chinese1_coprime_Z_aux 56922
chinese_intpol 18
classno 1427298
classno2 18
conductor_part 1425660
contfrac0 42
contfracpnqn 108
corediscfact 1461522
equal1 444
err_oo 48
err_p 138
err_prec 168
fibo 6
find_order 1928292
gboundcf 308328
gc_chinese 51122
gcf 0
gcf2 0
gen_chinese 86463
gener_Zp 198
geomsum 5214
get_Fp_field 3274
get_PHI 72
get_forms 1425642
get_quad 12
gisanypower 6000156
gissquare 0
gissquareall 0
gome 3757459
handle_pe 372
hclassno 64758
hclassno2 4362
hilbert 564
hilbertii 45552
icopy_lg 308058
init_montdata 277091
is_gener_Fl 46784
is_gener_Fp 62
is_gener_expo 24
isfundamental 12318
ispolygonal 1188
ispower 6002550
isprimepower 720084
isprimepower_i 721488
ispseudoprimepower 1404
issquare 122664
issquareall 125946
istotient 60000
istotient_i 532770
krois 23826
kroiu 240697716
kronecker 4324339
krosi 25640
kross 41911482
kroui 56
krouodd 25696
krouu 80346698
krouu_s 367419259
lcmii 3289838
lift_intmod 360
lift_padic 180
logint0 48
logintall 213318
lucas 48
mod_to_frac 30
mod_to_rfrac 48
mpfact 2010418
mphilbertoo 8556
muls_interval 384
mulu_interval 860172
myh 31500
ncV_chinese_center 2364
ncV_polint_center_tree 34683
nmV_chinese_center 1776
nmV_polint_center_tree 1776
nmV_polint_center_tree_worker 32318
odd_prime_divisors 30
ok_q 4698
ome 479214840
opt_param 42
order 0
pgener_Fl 38188
pgener_Fl_local 45571
pgener_Fp 5016
pgener_Fp_local 5490
pgener_Zl 3540
pgener_Zp 3540
pnqn 0
polispower 426
polissquareall 1734
polmodispower 108
qfb_equal1 9043950
qfbclassno0 120
qfi_Shanks 445116
qfi_comp 16191552
qfi_log 0
qfi_order 2060166
qfi_pow 12801162
quaddisc 6
quadregulator 18
quadunit 6
quadunit0 6
ramanujantau 6030
relative_order 96
remove2 30
rootsof1_Fl 2190
rootsof1_Fp 0
rootsof1u_Fp 6
sersfcont 0
sfcont2 12
sisfundamental 996
split_exponent 433482
split_lcm 251250
sqr_primeform 27085704
sqrt_Cipolla 6
sqrt_Cipolla_msqr 18
sqrt_Cipolla_sqr 360
sqrtint 33762
tauprime 12774
two_rank 1425642
u_chinese_coprime 49212
u_chinese_post 49212
u_is_gener_expo 19217
u_odd_prime_divisors 19136
u_remove2 19136
uisprimepower 481512
uissquare 102678
uissquareall 7376780
ulogintall 207600
unegisfundamental 11628
update_f 12
update_g1 251250
uposisfundamental 7062
znlog 192
znlog_rec 96
znorder 54
znprimroot 258

Generated by: LCOV version 1.11