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 21188-db834f2) Lines: 2819 3045 92.6 %
Date: 2017-10-20 06:23:07 Functions: 252 268 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
ECP_psi 525
Fl_2gener_pre 145102
Fl_2gener_pre_all 26123704
Fl_2powu 4832552
Fl_2powu_pre 20082753
Fl_lgener_pre_all 69774
Fl_order 5579
Fl_powers 1898
Fl_powers_pre 8682100
Fl_powu 50824603
Fl_powu_pre 94848861
Fl_sqrt 58267637
Fl_sqrt_pre 4461978
Fl_sqrt_pre_i 62749565
Fl_sqrtl 0
Fl_sqrtl_i 132501
Fl_sqrtl_pre 132502
Fp_2gener 686
Fp_2gener_all 6627
Fp_dblsqr 4494699
Fp_easylog 2885699
Fp_factored_order 56
Fp_invmBarrett 9905
Fp_ispower 210
Fp_log 1707940
Fp_log_find_ind 98
Fp_log_find_rel 256
Fp_log_halfgcd 67189
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 39015
Fp_log_use_index 1807784
Fp_order 10732
Fp_pow 10933064
Fp_powers 1624
Fp_pows 21070
Fp_powu 983722
Fp_rem_mBarrett 4733253
Fp_select_red 422313
Fp_sqrt 2333364
Fp_sqrt_i 2349373
Fp_sqrtn 63498
Hspec 36806
Qp_ispower 1113
Qsfcont 359692
Shanks_order 1947363
U2_issquare 2373
Up_ispower 273
Up_issquare 4690
ZM_nv_mod_tree 25550
ZT_sqr 3330349
ZV_allpnqn 352863
ZV_chinese 12927
ZV_chinese_center 38277
ZV_chinese_tree 8590062
ZV_chinesetree 494064
ZV_invdivexact 494171
ZV_nv_mod_tree 253559
ZV_producttree 495552
ZV_sqr 494164
ZXX_nv_mod_tree 423
ZX_nv_mod_tree 388359
Z_ZV_mod 0
Z_ZV_mod_tree 13223511
Z_chinese 2142
Z_chinese_all 199990
Z_chinese_coprime 1050
Z_chinese_post 798340
Z_chinese_pre 218589
Z_factor_listP 350651
Z_isanypower 7000819
Z_isanypower_aux 7000819
Z_isanypower_nosmalldiv 864570
Z_isfundamental 16338
Z_ispow2 34471
Z_ispowerall 1512
Z_issquareall 6180895
Z_nv_mod 0
Zn_ispower 308
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 1048990
_Fp_equal0 531984
_Fp_inv 19537
_Fp_mul 1302036
_Fp_neg 113573
_Fp_one 104
_Fp_pow 8197253
_Fp_rand 992
_Fp_red 994047
_Fp_rmul 1293214
_Fp_s 88637
_Fp_sqr 948
_computeG 525
_mul2_montred 5449028
_mul2_remii 3279498
_mul2_remiibar 1215201
_mul_montred 3134735
_mul_remii 1347708
_mul_remiibar 486203
_psi 1367
_sqr_montred 32565102
_sqr_remii 12958381
_sqr_remiibar 4247050
addifsmooth1 2583
addifsmooth2 99869
bestappr 15035
bestapprPade 77
bestappr_Q 377778
bestappr_RgX 77
bestappr_frac 0
bestappr_real 233259
bestappr_real_max 287
bestappr_ser 56
carremod 13525858
check_kernel 49
chinese 16520
chinese1 203
chinese1_coprime_Z 708398
chinese1_coprime_Z_aux 578435
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 89393
gcf 0
gcf2 0
gen_chinese 708601
gener_Zp 231
geomsum 120
geomsumu 120
get_Fp_field 4767
get_PHI 84
get_forms 1947314
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 5056150
handle_pe 413
hclassno 44576
hclassno6 120505
hclassno6_large 7873
hilbert 658
hilbertii 53144
icopy_lg 359403
init_montdata 324766
is_gener_Fl 110911
is_gener_Fp 142
is_gener_expo 34
isfundamental 17185
ispolygonal 1386
ispower 7002989
isprimepower 840098
isprimepower_i 842000
ispseudoprimepower 1902
issquare 143115
issquareall 147399
istotient 70000
istotient_i 621565
krois 29246
kroiu 325884784
kronecker 5051838
krosi 632347
kross 80030012
kroui 124
krouodd 632471
krouu 108313115
krouu_s 511562253
lcmii 13075833
lift_intmod 420
lift_padic 210
logint0 56
logintall 259575
lucas 56
mod_to_frac 42
mod_to_rfrac 70
mpfact 2457074
mphilbertoo 9982
muls_interval 448
mulu_interval 1078852
ncV_chinese_center 3550
ncV_polint_center_tree 470263
nmV_chinese_center 32625
nmV_chinese_center_tree 0
nmV_chinese_center_tree_seq 14289
nmV_polint_center_tree 32625
nmV_polint_center_tree_seq 14288
nmV_polint_center_tree_worker 300937
nxV_chinese_center 2014
nxV_chinese_center_tree 423
nxV_polint_center_tree 2437
odd_prime_divisors 43
ok_q 6327
ome 652344880
opt_param 49
order 0
pgener_Fl 113515
pgener_Fl_local 135933
pgener_Fp 23422
pgener_Fp_local 23975
pgener_Zl 70723
pgener_Zp 70728
pnqn 0
polispower 672
polissquareall 2275
polmodispower 49
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 2394
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 1692
two_rank 1947314
u_chinese_coprime 79289
u_chinese_post 79289
u_is_gener_expo 41731
u_odd_prime_divisors 41613
u_remove2 41610
uisprimepower 541751
uissquare 120651
uissquareall 12036290
ulogintall 252007
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