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-bordeaux1.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.8.0 lcov report (development 16962-5a32637) Lines: 2259 2677 84.4 %
Date: 2014-10-29 Functions: 189 218 86.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1553 2206 70.4 %

Function Name Sort by function name Hit count Sort by hit count
Fl_2gener_pre_all 3212562
Fl_lgener_pre_all 0
Fl_order 4641
Fl_powers 0
Fl_powers_pre 0
Fl_powu 52949046
Fl_powu_pre 9382904
Fl_sqrt 5247690
Fl_sqrt_i 5247704
Fl_sqrt_pre 14
Fl_sqrtl 0
Fl_sqrtl_i 0
Fl_sqrtl_pre 0
Fp_easylog 161139
Fp_factored_order 49
Fp_invmBarrett 6356
Fp_ispower 168
Fp_log 184568
Fp_log_find_ind 42
Fp_log_find_rel 154
Fp_log_halfgcd 56350
Fp_log_index 21
Fp_log_sieve_h 28770
Fp_log_use_index 151408
Fp_order 6162
Fp_pow 2209012
Fp_powers 0
Fp_pows 14336
Fp_powu 1007543
Fp_rem_mBarrett 321724
Fp_select_red 308773
Fp_sqrt 1615322
Fp_sqrtn 1596
Qsfcont 1981196
Shanks_order 154
U2_issquare 2373
Up_ispower 252
Up_issquare 4690
ZT_sqr 0
ZV_allpnqn 1533
ZV_chinese 0
ZV_chinesetree 0
ZV_invdivexact 0
ZV_polint_tree 0
ZV_producttree 0
ZV_sqr 0
Z_ZV_mod 0
Z_ZV_mod_tree 0
Z_chinese 1988
Z_chinese_all 108755
Z_chinese_coprime 412293
Z_chinese_post 596327
Z_chinese_pre 127123
Z_factor_listP 350651
Z_isanypower 7001631
Z_isanypower_aux 7001631
Z_isanypower_nosmalldiv 864278
Z_isfundamental 14574
Z_ispow2 19213
Z_ispowerall 707
Z_issquareall 2848684
Z_nv_mod 0
Zn_ispower 280
Zn_issquare 2548
Zp_issquare 0
Zp_order 63
_Fp_add 25158454
_Fp_equal0 1458536
_Fp_inv 59337
_Fp_mul 83832
_Fp_neg 135091
_Fp_one 0
_Fp_pow 397352
_Fp_rand 329
_Fp_red 2607965
_Fp_rmul 26149448
_Fp_s 123856
_Fp_sqr 0
_m2sqr 2473063
_montred 11541099
_mul 777834
_muli2montred 1900902
_muli2red 2473063
_psi 742
_remii 4017185
_remiibar 321724
_sqr 12396110
addifsmooth1 29078
addifsmooth2 205667
bestappr 3329
bestapprPade 63
bestappr_Q 252314
bestappr_RgX 63
bestappr_frac 0
bestappr_real 171297
bestappr_real_max 28
bestappr_ser 49
carremod 8139064
check_kernel 21
chinese 16436
chinese1 35
chinese1_coprime_Z 69856
chinese1_coprime_Z_aux 56904
classno 119
classno2 21
conductor_part 133
contfrac0 252
contfracpnqn 126
corediscfact 140
eps 18431
equal1 518
err_oo 56
err_p 161
err_prec 196
fibo 7
find_order 441
gboundcf 1982925
gcf 0
gcf2 0
gener_Zp 196
get_Fp_field 6205
get_PHI 63
get_forms 112
get_quad 14
gisanypower 7000154
gissquare 0
gissquareall 0
gome 2612824
handle_pe 392
hclassno 7
hclassno2 7
hilbert 658
hilbertii 53095
icopy_lg 1980979
init_montdata 233001
is_gener_Fl 33543
is_gener_Fp 134
is_gener_expo 33
isfundamental 14021
ispolygonal 1386
ispower 7001617
isprimepower 840091
issquare 142996
issquareall 145237
istotient 70000
istotient_i 621565
krois 507
kroiu 1199690
kronecker 4946759
krosi 27827
kross 65240
kroui 128
krouodd 27955
krouu 15937678
krouu_s 22156214
lcmii 2343839
lift_intmod 420
lift_padic 210
logint 57204
logint0 546
lucas 56
mod_to_frac 35
mod_to_rfrac 56
mpfact 76784
mphilbertoo 9968
mulu_interval 119715
odd_prime_divisors 34
ok_q 7
ome 20988273
opt_param 21
order 0
pgener_Fl 31423
pgener_Fl_local 39325
pgener_Fp 9149
pgener_Fp_local 9646
pgener_Zl 52
pgener_Zp 56
pnqn 0
polispower 56
polissquareall 1187
qfb_hash 10437
qfb_is_1 1302
qfb_pow 2198
qfbclassno0 133
qfi_comp 9779
quaddisc 7
quadregulator 21
quadunit 7
relative_order 112
remove2 34
rootsof1_Fl 511
rootsof1_Fp 0
rootsof1u_Fp 301
sersfcont 0
sfcont2 14
split_exponent 505708
split_lcm 77
sqr_primeform 2128
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 17515
two_rank 112
u_is_gener_expo 15381
u_odd_prime_divisors 15570
u_remove2 15570
uisprimepower 540061
uissquare 115149
uissquareall 7973702
unegisfundamental 9387
update_f 14
update_g1 77
uposisfundamental 6552
znlog 168
znlog_rec 91
znorder 63
znprimroot 245
znstar 3444

Generated by: LCOV version 1.9