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 to exceed 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 - elliptic.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 4275 4561 93.7 %
Date: 2023-08-26 07:54:43 Functions: 383 391 98.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CM_factor 14
F2_card 2555
F3_card 3619
FF_ellinit_ns 114381
Fl_c4_to_a4 719865
Fl_c4c6_to_a4a6 696472
Fl_c6_to_a6 697120
Fl_ell_to_a4a6 696472
FljV_changepointinv_pre 15617
FljV_vecsat 11438
FljV_vecsat_Prickett 2807
FljV_vecsat_Siksek 8631
Flv_firstnonzero 147
Fq_c4_to_a4 93438
Fq_c4c6_to_a4a6 93436
PiI2div 24514
QEV_to_ZJV 4445
QE_to_ZJ 33684
Q_numer 71369
Q_to_globalred 952
Q_to_minimalprimes 1057
RgE2_Fp_init 497
ZV_is_ei 4199
Z_gcd_primes 458219
Zec_h_evalx 519000
ZtoF2 378
_elleisnum 13594
_elleta 8953
_hell 20446
_mul 371
_sqr 1169
a4a6_ch 23232
a4a6_ch_Fl 34715
akell 693
apk_good 735
approx_mod2 26320
approx_mod3 13160
aux 888965
aux2 1421966
base_ring 695548
bilhell 7
bilhell_i 21
bnf_get_v 56
c4_to_a4 2276425
c4c6_to_a4a6 2276423
cardmod2 2534
cardmod3 3479
ch_FF 126
ch_Fp 7
ch_Fq 119
ch_Q 37443
ch_Qp 35
ch_R 37443
ch_Rg 7
check_complex 17516
check_periods 15540
checkcoordch 92168
checkell 3867510
checkell5 72212
checkell_Fq 254086
checkell_Q 5950
checkell_Qp 0
checkell_int 693
checkellisog 3528
checkellp 2817762
checkellpt 428620
chk_p 99829
compute_periods 15533
coordch 72877
coordch_r 611947
coordch_rst 348236
coordch_s 118433
coordch_st 348236
coordch_t 345219
coordch_uinv 75243
cxredsl2 9114
cxredsl2_i 9149
direllnf_worker 4963
doellGm 40978
doellR_ab 1385
doellR_eta 70
doellR_omega 5119
doellR_roots 7798
doellR_roots_i 11565
doellcard 117979
doellff_get_o 19292
doellgens 18690
doellnfrootno 161
doellrootno 1120
ec_2divpol_evalx 994
ec_3divpol_evalx 14
ec_LHS_evalQ 43355
ec_bmodel 20987
ec_dFdx_evalQ 3584
ec_dFdy_evalQ 532
ec_dmFdy_evalQ 42874
ec_f_evalx 558240
ec_h_evalx 660501
ec_half_deriv_2divpol 812
ec_half_deriv_2divpol_evalx 707
ec_phi2 105
ellQ_bsd 28
ellQ_eulerf 56
ellQ_factorback 4213
ellQ_factorback1 16027
ellQ_factorback_chinese 5397
ellQ_factorback_filter 10927
ellQ_factorback_slice 8799
ellQ_factorback_worker 8799
ellQ_genreduce 805
ellQ_get_CM 13986
ellQ_get_N 3682
ellQ_get_Nfa 917
ellQ_globalred 454566
ellQ_height 23673
ellQ_isdivisible 42
ellQ_isdivisible_test 42
ellQ_minimalu 457141
ellQ_rootno 91
ellQ_saturation 49
ellQ_tamagawa 49
ellQap 98574
ellQap_u 102417
ellQminimalmodel 3031
ellQp_P2t 140
ellQp_P2t_err 21
ellQp_t2P 56
ellQtwist_bsdperiod 1407
ellR_ab 25577
ellR_area 2646
ellR_eta 84
ellR_omega 7539
ellR_on_neutral 25577
ellR_root 25577
ellR_roots 32165
ell_is_integral 24023
ell_over_Fq 505378
ell_reset 73129
ell_to_a4a6 2276322
ell_to_a4a6_bc 23232
ell_to_nfell10 99876
elladd 36834
ellan 525
ellanQ 329
ellanQ_zv 2415
ellan_get_ap 358862
ellanal_globalred 2310
ellap 2493050
ellap_CM_fast 378385
ellbasechar 3927
ellbsd 70
ellcard 88264
ellcard_ram 2330949
ellchangecurve 72212
ellchangeinvert 28
ellchangepoint 19004
ellchangepoint0 18976
ellchangepointinv 959
ellchangepointinv0 4066
elldivpol 6475
elldivpol0 5075
elldivpol4 8414
elleisnum 4459
elleta 84
elleulerf 70
ellexpo 7
ellff_Gm 80521
ellff_get_D 18690
ellff_get_card 163759
ellff_get_gens 18767
ellff_get_group 61831
ellff_get_m 18690
ellff_get_o 19845
ellff_get_p 181455
ellffmul 250319
ellfromj 34020
ellfromj_simple 22715
ellgenerators 16849
ellglobalred 454167
ellglobalred_i 460978
ellgroup 22330
ellgroup0 21490
ellgroup_m 21917
ellheight 23785
ellheight0 238
ellheight_C 28
ellheightfaltings 70
ellheightmatrix 833
ellheightoo 1918
ellheightpairing 35
ellinit 659974
ellinit_Fp 30974
ellinit_Fq 114514
ellinit_Q 499772
ellinit_Qp 203
ellinit_Rg 9891
ellinit_i 660996
ellinit_nf 37590
ellinit_nf_to_Fq 3528
ellintegralbmodel 0
ellintegralmodel 336
ellintegralmodel_i 3101198
elliscm 154
ellisoncurve 17192
ellissupersingular 166117
elljissupersingular 165907
elllocalred 197085
elllog 140
elllseries 14
ellminimalbmodel 938
ellminimaldisc 70
ellminimalmodel 3094
ellminimalmodel_i 458611
ellminimalprimes 987
ellminimaltwist 665
ellminimaltwist0 448
ellminimaltwistcond 399
ellmul 251411
ellmul_CM 14
ellmul_CM_aux 14
ellmul_Z 251292
ellneg 24590
ellneg_i 70
ellnf2isog 273
ellnf_D_primes 952
ellnf_adelicvolume 812
ellnf_bsd 42
ellnf_bsdperiod 812
ellnf_c4c6_primes 1078
ellnf_get_CM 56
ellnf_get_nf_prec 1162
ellnf_height 112
ellnf_localheight 245
ellnf_minimalnormu 868
ellnf_reladelicvolume 231
ellnf_rootno_global 161
ellnf_tamagawa 840
ellnf_to_Fq 3549
ellnf_vec_wrap 154
ellnf_vecarea 91
ellnf_veceta 28
ellnf_vecomega 35
ellnf_volume 56
ellnfan 203
ellnfap 191753
ellnfembed 1064
ellnfembed_free 973
ellnfglobalred 952
ellnflocal 83784
ellnfminimalmodel 56
ellnfminimalmodel_i 56
ellomega_agm 5119
ellomega_cx 3543
ellordinate 2975
ellordinate_i 2975
ellpadicheight0 70
ellpadicheightmatrix 847
ellperiods 49
ellpointnfembed 98
ellprint 0
ellrandom 245847
ellrnfup 343
ellrootno 203
ellrootno_2 399
ellrootno_3 287
ellrootno_global 2338
ellrootno_p 1393
ellsatp 1204
ellsatp_mat 1204
ellsaturation 49
ellsea 126
ellsigma 8974
ellsub 49
ellsupersingularj 1204
elltamagawa 49
elltaniyama 14
elltatepairing 301
elltrace 56
elltwist 28567
elltwist_card 0
ellweilpairing 5250
ellwp 0
ellwp0 182
ellwpnum_all 1911
ellwpseries 14
ellwpseries_aux 301
ellxn 406
ellzeta 161
eta_correction 8918
exphellagm 25577
fix_nftype 36981
gcomposev 1638
get_c4c6 294
get_j 684921
get_periods 15456
get_piinv 4403
get_r0 189
get_toadd 10729
get_uniformizers 151284
get_vp_u 879487
get_vp_u_small 1686996
handle_Q 40614
handle_coeff 15505848
hoo_aux 25577
init_ch 2570232
initsmall 692923
initsmall46 143982
initsmall5 672721
invcmp 11382
is_trivial_change 460291
j_pval 880880
kod_23 686
localred 1583512
localred_23 704445
localred_p 879487
localred_result 1735216
localredbug 0
ltors_Fl 2807
min_get_v 519000
min_set_2 35
min_set_3 140
min_set_D 519014
min_set_a 519035
min_set_all 519000
min_set_b 519175
min_set_c 519322
min_set_u 519322
min_to_ell 505917
myroundr 42
nb_real_components 462
neron_2 399
neron_3 168
nfVtoalg 37604
nf_compose_r 165392
nf_compose_rt 252602
nf_compose_s 109653
nf_compose_st 184961
nf_compose_t 255037
nf_compose_u 153510
nf_coordch 476
nf_coordch_r 267950
nf_coordch_rst 476
nf_coordch_rt 171174
nf_coordch_s 109653
nf_coordch_st 13142
nf_coordch_t 252113
nf_coordch_uinv 153986
nfembed_extraprec 1162
nfembedall 5516
nflocalred 102137
nflocalred_23 99876
nflocalred_p 51408
nflocalred_section7 15575
nfrestrict23 35
nftoalg 391195
numroots2 788963
numroots3 244335
oncurve 39605
oncurve_exact 3827
padic_prec 252
point_to_a4a6 0
point_to_a4a6_Fl 7366
pointell 1890
pol2sqrt_23 587188
pola1a2 242711
pola2a4a6 217322
pola3a6 393344
quad_root 25577
real_prec 84
red_modSL2 15533
reduce_z 10857
rootnovalp 273
safe_Z_lval 3227
set_gamma 24682
sievep 358862
sievep_bad 3787
sievep_good 355075
slope_samex 8589
to_RgX 231
to_mod 302002
triv_ser 0
twist2 392
val_aux 2058
val_init 686
zell 203
zell_closest_0 14
zell_i 70
zellcx 35
zellrealneg 7
zellrealpos 28
zk_capZ 3108

Generated by: LCOV version 1.14