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 21505-505a0e1) Lines: 2920 3166 92.2 %
Date: 2017-12-17 06:20:46 Functions: 267 285 93.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
ECP_psi 525
Fl_2gener_pre 147370
Fl_2gener_pre_all 26729798
Fl_2powu 2819588
Fl_2powu_pre 20189708
Fl_lgener_pre_all 70860
Fl_log 0
Fl_log_Fp 0
Fl_log_naive 0
Fl_log_naive_pre 20983
Fl_log_pre 20983
Fl_order 5740
Fl_powers 2688
Fl_powers_pre 8703605
Fl_powu 43647321
Fl_powu_pre 96649093
Fl_sqrt 59660424
Fl_sqrt_pre 4485157
Fl_sqrt_pre_i 64173023
Fl_sqrtl 0
Fl_sqrtl_i 134968
Fl_sqrtl_pre 134967
Fl_sqrtl_raw 135262
Fl_sqrtn 63449
Fl_sqrtn_pre 63449
Fp_2gener 686
Fp_2gener_all 6647
Fp_dblsqr 4484933
Fp_easylog 841322
Fp_factored_order 56
Fp_invmBarrett 9905
Fp_ispower 210
Fp_log 577661
Fp_log_find_ind 98
Fp_log_find_rel 259
Fp_log_halfgcd 71563
Fp_log_index 49
Fp_log_sieve 49
Fp_log_sieve_worker 38990
Fp_log_use_index 617895
Fp_order 10749
Fp_pow 5009691
Fp_powers 2016
Fp_pows 21567
Fp_powu 958265
Fp_rem_mBarrett 4733253
Fp_select_red 407875
Fp_sqrt 2331709
Fp_sqrt_i 2347718
Fp_sqrtn 61090
Hspec 36750
Qp_ispower 1113
Qsfcont 497830
Shanks_order 2019708
U2_issquare 2373
Up_ispower 273
Up_issquare 4690
ZM_nv_mod_tree 15414
ZT_sqr 3158429
ZV_allpnqn 490035
ZV_chinese 12930
ZV_chinese_center 38311
ZV_chinese_tree 6634090
ZV_chinesetree 467766
ZV_invdivexact 467845
ZV_nv_mod_tree 166432
ZV_producttree 469232
ZV_sqr 467855
ZXC_nv_mod_tree 268
ZXM_nv_mod_tree 50
ZXX_nv_mod_tree 423
ZX_nv_mod_tree 389991
Z_ZV_mod 0
Z_ZV_mod_tree 12330230
Z_chinese 2142
Z_chinese_all 218604
Z_chinese_coprime 1050
Z_chinese_post 515100
Z_chinese_pre 237203
Z_factor_listP 350651
Z_isanypower 7000791
Z_isanypower_aux 7000791
Z_isanypower_nosmalldiv 864597
Z_isfundamental 16681
Z_ispow2 71730
Z_ispowerall 1512
Z_issquareall 6253324
Z_nv_mod 0
Zn_ispower 308
Zn_issquare 2548
Zp_issquare 0
Zp_order 70
_Fp_add 1610486
_Fp_equal0 586106
_Fp_inv 21956
_Fp_mul 588521
_Fp_neg 201862
_Fp_one 140
_Fp_pow 2672061
_Fp_rand 112
_Fp_red 1294851
_Fp_rmul 1889776
_Fp_s 104744
_Fp_sqr 1128
_computeG 525
_mul2_montred 5380273
_mul2_remii 3269732
_mul2_remiibar 1215201
_mul_montred 3097773
_mul_remii 1347432
_mul_remiibar 486203
_psi 1367
_sqr_montred 31445531
_sqr_remii 12961770
_sqr_remiibar 4247050
addifsmooth1 2583
addifsmooth2 99869
bestappr 15644
bestapprPade 77
bestappr_Q 377974
bestappr_RgX 77
bestappr_frac 0
bestappr_real 233143
bestappr_real_max 287
bestappr_ser 56
carremod 13452431
check_kernel 49
chinese 16520
chinese1 49
chinese1_coprime_Z 286633
chinese1_coprime_Z_aux 276581
chinese_intpol 21
classno 2021993
classno2 21
compute_nbgen 49
conductor_part 2019680
contfrac0 49
contfracpnqn 175
corediscfact 2027553
equal1 518
err_oo 56
err_p 161
err_prec 196
fa_isfundamental 1407
fibo 7
find_order 2732776
gboundcf 498017
gc_chinese 72791
gcf 35
gcf2 0
gen_chinese 286682
gener_Zp 231
geomsum 120
geomsumu 120
get_Fp_field 4974
get_PHI 84
get_forms 2019659
get_quad 14
gisanypower 7000182
gissquare 0
gissquareall 0
gome 5438683
handle_pe 413
hclassno 45346
hclassno6 121128
hclassno6_large 7873
hilbert 658
hilbertii 53144
icopy_lg 497534
init_montdata 310620
is_gener_Fl 99629
is_gener_Fp 97
is_gener_expo 34
isfundamental 17521
ispolygonal 1386
ispower 7002989
isprimepower 840098
isprimepower_i 841697
ispseudoprimepower 1599
issquare 157836
issquareall 163072
istotient 70000
istotient_i 621565
krois 30681
kroiu 337376908
kronecker 6099476
krosi 632388
kross 73743590
kroui 87
krouodd 632475
krouu 109211680
krouu_s 522164911
lcmii 17962175
lift_intmod 420
lift_padic 210
logint0 56
logintall 259379
lucas 56
mod_to_frac 42
mod_to_rfrac 70
mpfact 2356653
mphilbertoo 9982
muls_interval 448
mulu_interval 992814
ncV_chinese_center 3641
ncV_polint_center_tree 250088
nmV_chinese_center 15691
nmV_chinese_center_tree 0
nmV_chinese_center_tree_seq 4155
nmV_polint_center_tree 15691
nmV_polint_center_tree_seq 4154
nmV_polint_center_tree_worker 167615
nxCV_polint_center_tree 3115
nxMV_chinese_center 204
nxMV_chinese_center_tree_seq 50
nxMV_polint_center_tree 204
nxMV_polint_center_tree_seq 50
nxMV_polint_center_tree_worker 2846
nxV_chinese_center 2014
nxV_chinese_center_tree 423
nxV_polint_center_tree 58771
odd_prime_divisors 43
ok_q 6600
ome 665890561
opt_param 49
order 0
pgener_Fl 106096
pgener_Fl_local 128484
pgener_Fp 23415
pgener_Fp_local 23968
pgener_Zl 65116
pgener_Zp 65121
pnqn 0
polint_chinese 15895
polispower 672
polissquareall 2961
polmodispower 49
qfb_equal1 12754913
qfbclassno0 140
qfi_Shanks 618944
qfi_comp 22656169
qfi_log 0
qfi_order 2902256
qfi_pow 18042141
quadclassno 0
quaddisc 7
quadregulator 21
quadunit 7
quadunit0 7
ramanujantau 7035
relative_order 112
remove2 43
rootsof1_Fl 2415
rootsof1_Fp 0
rootsof1u_Fp 7
sersfcont 0
sfcont2 14
sisfundamental 10458
split_exponent 505715
split_lcm 356471
sqr_primeform 38371426
sqrt_Cipolla 8
sqrt_Cipolla_msqr 23
sqrt_Cipolla_sqr 449
sqrtint 30563
tauprime 14903
to_ZX 3235
two_rank 2019659
u_chinese_coprime 84322
u_chinese_post 84322
u_is_gener_expo 39022
u_odd_prime_divisors 38927
u_remove2 38927
uisprimepower 541745
uissquare 120574
uissquareall 11963014
ulogintall 251797
unegisfundamental 21050
update_f 14
update_g1 356471
uposisfundamental 10674
znlog 224
znlog_rec 112
znorder 63
znprimroot 301

Generated by: LCOV version 1.11