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 20422-b487f4d) Lines: 2702 2920 92.5 %
Date: 2017-03-22 05:51:54 Functions: 235 249 94.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 22162110
Fl_2powu 2619140
Fl_2powu_pre 13478658
Fl_lgener_pre_all 63068
Fl_order 5327
Fl_powers 1520
Fl_powers_pre 8284922
Fl_powu 13993159
Fl_powu_pre 77747070
Fl_sqrt 50340821
Fl_sqrt_i 53806897
Fl_sqrt_pre 3469382
Fl_sqrtl 0
Fl_sqrtl_i 115201
Fl_sqrtl_pre 115201
Fp_dblsqr 472982
Fp_easylog 193776
Fp_factored_order 56
Fp_invmBarrett 4974
Fp_ispower 231
Fp_log 212935
Fp_log_find_ind 98
Fp_log_find_rel 245
Fp_log_halfgcd 59972
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 36922
Fp_log_use_index 160679
Fp_order 11320
Fp_pow 2468341
Fp_powers 1624
Fp_pows 21014
Fp_powu 932109
Fp_rem_mBarrett 331859
Fp_select_red 358445
Fp_sqrt 2327539
Fp_sqrtn 63274
Hspec 36750
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1673173
U2_issquare 2373
Up_ispower 294
Up_issquare 4690
ZT_sqr 671248
ZV_allpnqn 352863
ZV_chinese 23772
ZV_chinese_tree 38855
ZV_chinesetree 67497
ZV_invdivexact 67493
ZV_polint_center_tree 2130863
ZV_polint_tree 2177045
ZV_producttree 67493
ZV_sqr 67495
ZX_nv_mod_tree 43381
Z_ZV_mod 0
Z_ZV_mod_tree 759019
Z_chinese 2142
Z_chinese_all 241472
Z_chinese_coprime 1050
Z_chinese_post 327877
Z_chinese_pre 260071
Z_factor_listP 350651
Z_isanypower 7000819
Z_isanypower_aux 7000819
Z_isanypower_nosmalldiv 864570
Z_isfundamental 14903
Z_ispow2 29871
Z_ispowerall 1505
Z_issquareall 5897137
Z_nv_mod 0
Zn_ispower 322
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 989754
_Fp_equal0 521334
_Fp_inv 18309
_Fp_mul 166625
_Fp_neg 104177
_Fp_one 104
_Fp_pow 575692
_Fp_rand 967
_Fp_red 964303
_Fp_rmul 1227247
_Fp_s 81984
_Fp_sqr 948
_mul2_montred 1087372
_mul2_remii 454582
_mul2_remiibar 18400
_mul_montred 1272496
_mul_remii 248289
_mul_remiibar 8563
_psi 1367
_sqr_montred 12553586
_sqr_remii 3729902
_sqr_remiibar 323296
addifsmooth1 2489
addifsmooth2 95007
bestappr 8545
bestapprPade 63
bestappr_Q 375582
bestappr_RgX 63
bestappr_frac 0
bestappr_real 256595
bestappr_real_max 21
bestappr_ser 49
carremod 10066640
check_kernel 49
chinese 16520
chinese1 49
chinese1_coprime_Z 100459
chinese1_coprime_Z_aux 66490
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 67496
gcf 0
gcf2 0
gen_chinese 100508
gener_Zp 231
geomsum 6083
get_Fp_field 4533
get_PHI 84
get_forms 1673124
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 4406359
handle_pe 434
hclassno 76027
hclassno2 5304
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 277095
is_gener_Fl 53549
is_gener_Fp 94
is_gener_expo 34
isfundamental 14343
ispolygonal 1386
ispower 7002975
isprimepower 840098
isprimepower_i 841698
ispseudoprimepower 1601
issquare 143108
issquareall 146937
istotient 70000
istotient_i 621565
krois 27692
kroiu 283083193
kronecker 5047117
krosi 31168
kross 45994228
kroui 84
krouodd 31252
krouu 95862292
krouu_s 430107694
lcmii 3842856
lift_intmod 420
lift_padic 210
logint0 56
logintall 248872
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 2339229
mphilbertoo 9982
muls_interval 448
mulu_interval 1001423
myh 36750
ncV_chinese_center 2787
ncV_polint_center_tree 40793
nmV_chinese_center 2083
nmV_polint_center_tree 2083
nmV_polint_center_tree_worker 38015
odd_prime_divisors 43
ok_q 5529
ome 563159351
opt_param 49
order 0
pgener_Fl 44196
pgener_Fl_local 52812
pgener_Fp 5852
pgener_Fp_local 6405
pgener_Zl 3985
pgener_Zp 3990
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 2555
rootsof1_Fp 0
rootsof1u_Fp 7
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 22236
u_odd_prime_divisors 22138
u_remove2 22138
uisprimepower 541751
uissquare 119412
uissquareall 8602344
ulogintall 241987
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