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 20924-e159ed0) Lines: 2779 3008 92.4 %
Date: 2017-08-21 06:23:16 Functions: 246 262 93.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
ECP_psi 525
Fl_2gener_pre 145109
Fl_2gener_pre_all 26125198
Fl_2powu 4805298
Fl_2powu_pre 15695534
Fl_lgener_pre_all 69774
Fl_order 5341
Fl_powers 1520
Fl_powers_pre 8678670
Fl_powu 23953455
Fl_powu_pre 90463996
Fl_sqrt 58269094
Fl_sqrt_pre 4462016
Fl_sqrt_pre_i 62751034
Fl_sqrtl 0
Fl_sqrtl_i 132500
Fl_sqrtl_pre 132501
Fp_2gener 686
Fp_2gener_all 6627
Fp_dblsqr 4525948
Fp_easylog 2885732
Fp_factored_order 56
Fp_invmBarrett 9957
Fp_ispower 287
Fp_log 1707964
Fp_log_find_ind 98
Fp_log_find_rel 257
Fp_log_halfgcd 67347
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 39016
Fp_log_use_index 1807804
Fp_order 10739
Fp_pow 10935373
Fp_powers 1624
Fp_pows 21070
Fp_powu 983144
Fp_rem_mBarrett 4744824
Fp_select_red 423257
Fp_sqrt 2333413
Fp_sqrt_i 2349422
Fp_sqrtn 63491
Hspec 36806
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1947363
U2_issquare 2373
Up_ispower 350
Up_issquare 4690
ZT_sqr 723722
ZV_allpnqn 352863
ZV_chinese 24100
ZV_chinese_tree 2353188
ZV_chinesetree 74007
ZV_invdivexact 74011
ZV_producttree 75394
ZV_sqr 74010
ZXX_nv_mod_tree 4200
ZX_nv_mod_tree 78036
Z_ZV_mod 0
Z_ZV_mod_tree 842486
Z_chinese 2142
Z_chinese_all 199990
Z_chinese_coprime 1050
Z_chinese_post 798319
Z_chinese_pre 218589
Z_factor_listP 350651
Z_isanypower 7000819
Z_isanypower_aux 7000819
Z_isanypower_nosmalldiv 864570
Z_isfundamental 16338
Z_ispow2 32939
Z_ispowerall 1400
Z_issquareall 6180825
Z_nv_mod 0
Zn_ispower 385
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 997162
_Fp_equal0 522100
_Fp_inv 18515
_Fp_mul 1301919
_Fp_neg 107455
_Fp_one 104
_Fp_pow 8196888
_Fp_rand 946
_Fp_red 972018
_Fp_rmul 1236157
_Fp_s 82078
_Fp_sqr 948
_computeG 525
_mul2_montred 5586922
_mul2_remii 3299485
_mul2_remiibar 1226463
_mul_montred 3133281
_mul_remii 1347469
_mul_remiibar 486203
_psi 1367
_sqr_montred 32761659
_sqr_remii 12964311
_sqr_remiibar 4258621
addifsmooth1 2583
addifsmooth2 99869
bestappr 15045
bestapprPade 70
bestappr_Q 413636
bestappr_RgX 70
bestappr_frac 0
bestappr_real 259704
bestappr_real_max 287
bestappr_ser 56
carremod 13525787
check_kernel 49
chinese 16520
chinese1 203
chinese1_coprime_Z 708462
chinese1_coprime_Z_aux 578414
chinese_intpol 21
classno 1949557
classno2 21
compute_nbgen 49
conductor_part 1947335
contfrac0 49
contfracpnqn 126
corediscfact 1955208
equal1 518
err_oo 56
err_p 161
err_prec 196
fa_isfundamental 1407
fibo 7
find_order 2635497
gboundcf 359718
gc_chinese 30083
gcf 0
gcf2 0
gen_chinese 708665
gener_Zp 231
geomsum 120
geomsumu 120
get_Fp_field 4585
get_PHI 84
get_forms 1947314
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 5056200
handle_pe 490
hclassno 44576
hclassno6 120505
hclassno6_large 7873
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 325444
is_gener_Fl 110170
is_gener_Fp 142
is_gener_expo 34
isfundamental 17185
ispolygonal 1386
ispower 7003003
isprimepower 840098
isprimepower_i 842004
ispseudoprimepower 1905
issquare 143122
issquareall 147406
istotient 70000
istotient_i 621565
krois 29246
kroiu 325884784
kronecker 5052002
krosi 632347
kross 80030012
kroui 124
krouodd 632471
krouu 105822251
krouu_s 509095754
lcmii 14185498
lift_intmod 420
lift_padic 210
logint0 56
logintall 259505
lucas 56
mod_to_frac 35
mod_to_rfrac 63
mpfact 2333863
mphilbertoo 9982
muls_interval 448
mulu_interval 983925
ncV_chinese_center 3550
ncV_polint_center_tree 47044
nmV_chinese_center 2433
nmV_polint_center_tree 2433
nmV_polint_center_tree_worker 43498
nxV_chinese_center 0
nxV_chinese_center_tree 4200
nxV_polint_center_tree 4200
odd_prime_divisors 43
ok_q 6327
ome 650466158
opt_param 49
order 0
pgener_Fl 112937
pgener_Fl_local 135354
pgener_Fp 23422
pgener_Fp_local 23975
pgener_Zl 70541
pgener_Zp 70546
pnqn 0
polispower 497
polissquareall 2275
polmodispower 126
qfb_equal1 12264017
qfbclassno0 140
qfi_Shanks 596537
qfi_comp 21814307
qfi_log 0
qfi_order 2789255
qfi_pow 17358976
quadclassno 0
quaddisc 7
quadregulator 21
quadunit 7
quadunit0 7
ramanujantau 7168
relative_order 112
remove2 43
rootsof1_Fl 2436
rootsof1_Fp 0
rootsof1u_Fp 7
sersfcont 0
sfcont2 14
sisfundamental 10451
split_exponent 505729
split_lcm 344004
sqr_primeform 36996962
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 39439
tauprime 15043
to_ZX 29582
two_rank 1947314
u_chinese_coprime 79289
u_chinese_post 79289
u_is_gener_expo 41545
u_odd_prime_divisors 41462
u_remove2 41459
uisprimepower 541751
uissquare 120651
uissquareall 12036252
ulogintall 251937
unegisfundamental 21043
update_f 14
update_g1 344004
uposisfundamental 10240
znlog 224
znlog_rec 112
znorder 63
znprimroot 301

Generated by: LCOV version 1.11