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 19825-b77c7f8) Lines: 2650 2877 92.1 %
Date: 2016-12-06 05:49:02 Functions: 231 245 94.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 22105646
Fl_lgener_pre_all 63026
Fl_order 5243
Fl_powers 1520
Fl_powers_pre 8282173
Fl_powu 13707273
Fl_powu_pre 77460248
Fl_sqrt 50207670
Fl_sqrt_i 53669261
Fl_sqrt_pre 3466041
Fl_sqrtl 0
Fl_sqrtl_i 115120
Fl_sqrtl_pre 115120
Fp_dblsqr 388410
Fp_easylog 171374
Fp_factored_order 56
Fp_invmBarrett 5311
Fp_ispower 231
Fp_log 198375
Fp_log_find_ind 98
Fp_log_find_rel 252
Fp_log_halfgcd 61260
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 36931
Fp_log_use_index 145748
Fp_order 10443
Fp_pow 2404830
Fp_powers 1624
Fp_pows 21000
Fp_powu 903418
Fp_rem_mBarrett 318776
Fp_select_red 352851
Fp_sqrt 2337636
Fp_sqrtn 63246
Hspec 36750
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1667608
U2_issquare 2373
Up_ispower 294
Up_issquare 4690
ZT_sqr 670160
ZV_allpnqn 352863
ZV_chinese 23649
ZV_chinese_tree 38816
ZV_chinesetree 67321
ZV_invdivexact 67321
ZV_polint_center_tree 2120193
ZV_polint_tree 2173988
ZV_producttree 67319
ZV_sqr 67322
ZX_nv_mod_tree 43368
Z_ZV_mod 0
Z_ZV_mod_tree 758689
Z_chinese 2142
Z_chinese_all 418187
Z_chinese_coprime 1050
Z_chinese_post 503879
Z_chinese_pre 436786
Z_factor_listP 350651
Z_isanypower 7000630
Z_isanypower_aux 7000630
Z_isanypower_nosmalldiv 864316
Z_isfundamental 14931
Z_ispow2 29772
Z_ispowerall 1505
Z_issquareall 4595230
Z_nv_mod 0
Zn_ispower 322
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 944352
_Fp_equal0 526235
_Fp_inv 18323
_Fp_mul 159435
_Fp_neg 103113
_Fp_one 104
_Fp_pow 532353
_Fp_rand 918
_Fp_red 935765
_Fp_rmul 1181019
_Fp_s 82528
_Fp_sqr 948
_mul2_montred 818750
_mul2_remii 384047
_mul2_remiibar 4363
_mul_montred 1271974
_mul_remii 247300
_mul_remiibar 8915
_psi 1367
_sqr_montred 12006661
_sqr_remii 3656958
_sqr_remiibar 309861
addifsmooth1 2489
addifsmooth2 95007
bestappr 8659
bestapprPade 63
bestappr_Q 403270
bestappr_RgX 63
bestappr_frac 0
bestappr_real 274983
bestappr_real_max 21
bestappr_ser 49
carremod 8762452
check_kernel 49
chinese 16520
chinese1 49
chinese1_coprime_Z 96344
chinese1_coprime_Z_aux 65777
chinese_intpol 21
classno 1669494
classno2 21
conductor_part 1667580
contfrac0 49
contfracpnqn 126
corediscfact 1709634
equal1 518
err_oo 56
err_p 161
err_prec 196
fibo 7
find_order 2255698
gboundcf 359718
gc_chinese 67319
gcf 0
gcf2 0
gen_chinese 96393
gener_Zp 287
geomsum 6083
get_Fp_field 4555
get_PHI 84
get_forms 1667559
get_quad 14
gisanypower 7000161
gissquare 0
gissquareall 0
gome 4401139
handle_pe 434
hclassno 75943
hclassno2 5304
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 273543
is_gener_Fl 53084
is_gener_Fp 121
is_gener_expo 35
isfundamental 14371
ispolygonal 1386
ispower 7002954
isprimepower 840098
isprimepower_i 841639
ispseudoprimepower 1541
issquare 143108
issquareall 146181
istotient 70000
istotient_i 621565
krois 27699
kroiu 282186871
kronecker 5057962
krosi 31189
kross 45834088
kroui 94
krouodd 31283
krouu 65077914
krouu_s 398258034
lcmii 3965270
lift_intmod 420
lift_padic 210
logint0 42
logintall 448784
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 2340014
mphilbertoo 9982
muls_interval 245
mulu_interval 998967
myh 36750
ncV_chinese_center 2780
ncV_polint_center_tree 40708
nmV_chinese_center 2076
nmV_polint_center_tree 2076
nmV_polint_center_tree_worker 37932
odd_prime_divisors 44
ok_q 5508
ome 530010615
opt_param 49
order 0
pgener_Fl 43748
pgener_Fl_local 52374
pgener_Fp 5831
pgener_Fp_local 6671
pgener_Zl 3900
pgener_Zp 3906
pnqn 0
polispower 497
polissquareall 1554
polmodispower 126
qfb_equal1 10562698
qfbclassno0 140
qfi_Shanks 518259
qfi_comp 18882543
qfi_log 0
qfi_order 2403991
qfi_pow 14951717
quaddisc 7
quadregulator 21
quadunit 7
ramanujantau 7035
relative_order 112
remove2 44
rootsof1_Fl 2261
rootsof1_Fp 0
rootsof1u_Fp 301
sersfcont 0
sfcont2 14
sisfundamental 1162
split_exponent 505729
split_lcm 293982
sqr_primeform 31681876
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 39355
tauprime 14903
two_rank 1667559
u_chinese_coprime 57414
u_chinese_post 57414
u_is_gener_expo 22014
u_odd_prime_divisors 21927
u_remove2 21927
uisprimepower 541698
uissquare 115562
uissquareall 8596190
unegisfundamental 12594
update_f 14
update_g1 293982
uposisfundamental 7230
znlog 224
znlog_rec 112
znorder 63
znprimroot 357

Generated by: LCOV version 1.11