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 20277-2bd9113) Lines: 2680 2896 92.5 %
Date: 2017-02-21 05:49:51 Functions: 234 248 94.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 22162483
Fl_2powu 2447721
Fl_2powu_pre 13358408
Fl_lgener_pre_all 63068
Fl_order 5306
Fl_powers 1520
Fl_powers_pre 8281007
Fl_powu 13768075
Fl_powu_pre 77637844
Fl_sqrt 50351705
Fl_sqrt_i 53811396
Fl_sqrt_pre 3469362
Fl_sqrtl 0
Fl_sqrtl_i 115202
Fl_sqrtl_pre 115202
Fp_dblsqr 388672
Fp_easylog 210371
Fp_factored_order 56
Fp_invmBarrett 5328
Fp_ispower 231
Fp_log 225832
Fp_log_find_ind 98
Fp_log_find_rel 252
Fp_log_halfgcd 61094
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 36947
Fp_log_use_index 173818
Fp_order 11306
Fp_pow 2520987
Fp_powers 1624
Fp_pows 21014
Fp_powu 931579
Fp_rem_mBarrett 320313
Fp_select_red 354054
Fp_sqrt 2337796
Fp_sqrtn 63288
Hspec 36750
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1673173
U2_issquare 2373
Up_ispower 294
Up_issquare 4690
ZT_sqr 670380
ZV_allpnqn 352863
ZV_chinese 23685
ZV_chinese_tree 38869
ZV_chinesetree 67423
ZV_invdivexact 67424
ZV_polint_center_tree 2130262
ZV_polint_tree 2177501
ZV_producttree 67421
ZV_sqr 67422
ZX_nv_mod_tree 43421
Z_ZV_mod 0
Z_ZV_mod_tree 759161
Z_chinese 2142
Z_chinese_all 241472
Z_chinese_coprime 1050
Z_chinese_post 327745
Z_chinese_pre 260071
Z_factor_listP 350651
Z_isanypower 7000595
Z_isanypower_aux 7000595
Z_isanypower_nosmalldiv 864345
Z_isfundamental 14903
Z_ispow2 30017
Z_ispowerall 1505
Z_issquareall 4600085
Z_nv_mod 0
Zn_ispower 322
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 944380
_Fp_equal0 526270
_Fp_inv 18337
_Fp_mul 170364
_Fp_neg 103127
_Fp_one 104
_Fp_pow 616475
_Fp_rand 960
_Fp_red 935849
_Fp_rmul 1181075
_Fp_s 82584
_Fp_sqr 948
_mul2_montred 822391
_mul2_remii 383477
_mul2_remiibar 5195
_mul_montred 1264314
_mul_remii 258408
_mul_remiibar 9117
_psi 1367
_sqr_montred 12002020
_sqr_remii 3680827
_sqr_remiibar 311196
addifsmooth1 2488
addifsmooth2 95008
bestappr 8694
bestapprPade 63
bestappr_Q 403375
bestappr_RgX 63
bestappr_frac 0
bestappr_real 275004
bestappr_real_max 21
bestappr_ser 49
carremod 8743346
check_kernel 49
chinese 16520
chinese1 49
chinese1_coprime_Z 104894
chinese1_coprime_Z_aux 66358
chinese_intpol 21
classno 1675066
classno2 21
conductor_part 1673145
contfrac0 49
contfracpnqn 126
corediscfact 1715199
equal1 518
err_oo 56
err_p 161
err_prec 196
fibo 7
find_order 2263181
gboundcf 359718
gc_chinese 67424
gcf 0
gcf2 0
gen_chinese 104943
gener_Zp 231
geomsum 6083
get_Fp_field 4562
get_PHI 84
get_forms 1673124
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 4406768
handle_pe 434
hclassno 76027
hclassno2 5304
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 268646
is_gener_Fl 53640
is_gener_Fp 121
is_gener_expo 34
isfundamental 14343
ispolygonal 1386
ispower 7002975
isprimepower 840098
isprimepower_i 841687
ispseudoprimepower 1589
issquare 143108
issquareall 146937
istotient 70000
istotient_i 621565
krois 27692
kroiu 283070733
kronecker 5057641
krosi 31168
kross 45994228
kroui 94
krouodd 31262
krouu 65066049
krouu_s 399288076
lcmii 4229569
lift_intmod 420
lift_padic 210
logint0 42
logintall 445466
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 2339209
mphilbertoo 9982
muls_interval 448
mulu_interval 1001403
myh 36750
ncV_chinese_center 2787
ncV_polint_center_tree 40770
nmV_chinese_center 2083
nmV_polint_center_tree 2083
nmV_polint_center_tree_worker 37985
odd_prime_divisors 43
ok_q 5529
ome 531050727
opt_param 49
order 0
pgener_Fl 44154
pgener_Fl_local 52788
pgener_Fp 5852
pgener_Fp_local 6692
pgener_Zl 3957
pgener_Zp 3962
pnqn 0
polispower 497
polissquareall 2023
polmodispower 126
qfb_equal1 10623290
qfbclassno0 140
qfi_Shanks 521927
qfi_comp 18977008
qfi_log 0
qfi_order 2420378
qfi_pow 15031727
quaddisc 7
quadregulator 21
quadunit 7
quadunit0 7
ramanujantau 7035
relative_order 112
remove2 43
rootsof1_Fl 2289
rootsof1_Fp 0
rootsof1u_Fp 301
sersfcont 0
sfcont2 14
sisfundamental 1162
split_exponent 505729
split_lcm 294941
sqr_primeform 31787604
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 39355
tauprime 14903
two_rank 1673124
u_chinese_coprime 57414
u_chinese_post 57414
u_is_gener_expo 22219
u_odd_prime_divisors 22159
u_remove2 22159
uisprimepower 541738
uissquare 115569
uissquareall 8577104
unegisfundamental 12573
update_f 14
update_g1 294941
uposisfundamental 7230
znlog 224
znlog_rec 112
znorder 63
znprimroot 301

Generated by: LCOV version 1.11