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 28880-3b5364847c) Lines: 4280 4566 93.7 %
Date: 2023-12-01 07:53:15 Functions: 383 391 98.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
checkell_Qp 0
ellintegralbmodel 0
ellprint 0
elltwist_card 0
ellwp 0
localredbug 0
point_to_a4a6 0
triv_ser 0
bilhell 7
ch_Fp 7
ch_Rg 7
ellexpo 7
zellrealneg 7
CM_factor 14
ec_3divpol_evalx 14
elllseries 14
ellmul_CM 14
ellmul_CM_aux 14
elltaniyama 14
ellwpseries 14
zell_closest_0 14
bilhell_i 21
ellQp_P2t_err 21
ellQ_bsd 28
ellchangeinvert 28
ellheight_C 28
ellnf_veceta 28
zellrealpos 28
ch_Qp 35
ellheightpairing 35
ellnf_vecomega 35
min_set_2 35
nfrestrict23 35
zellcx 35
ellQ_isdivisible 42
ellQ_isdivisible_test 42
ellnf_bsd 42
myroundr 42
ellQ_saturation 49
ellQ_tamagawa 49
ellperiods 49
ellsaturation 49
ellsub 49
elltamagawa 49
bnf_get_v 56
ellQ_eulerf 56
ellQp_t2P 56
ellnf_get_CM 56
ellnf_volume 56
ellnfminimalmodel 56
ellnfminimalmodel_i 56
doellR_eta 70
ellbsd 70
elleulerf 70
ellheightfaltings 70
ellminimaldisc 70
ellneg_i 70
ellpadicheight0 70
elltrace 70
zell_i 70
ellR_eta 84
elleta 84
real_prec 84
ellQ_rootno 91
ellnf_vecarea 91
ellpointnfembed 98
ec_phi2 105
ellnf_height 112
ch_Fq 119
ch_FF 126
ellsea 126
to_RgX 126
ellQp_P2t 140
elllog 140
min_set_3 140
Flv_firstnonzero 147
elliscm 154
ellnf_vec_wrap 154
doellnfrootno 161
ellnf_rootno_global 161
ellzeta 161
neron_3 168
ellwp0 182
get_r0 189
ellinit_Qp 203
ellnfan 203
ellrootno 203
zell 203
ellnf_reladelicvolume 231
ellheight0 238
ellnf_localheight 245
padic_prec 252
ellnf2isog 273
rootnovalp 273
ellrootno_3 287
get_c4c6 294
elltatepairing 301
ellwpseries_aux 301
ellanQ 329
ellintegralmodel 336
ellrnfup 343
ZtoF2 378
_mul 378
twist2 392
ellminimaltwistcond 399
ellrootno_2 399
neron_2 399
ellxn 406
ellminimaltwist0 448
nb_real_components 462
nf_coordch 476
nf_coordch_rst 476
RgE2_Fp_init 497
ellan 525
ec_dFdy_evalQ 532
ellminimaltwist 665
kod_23 686
val_init 686
akell 693
checkell_int 693
ec_half_deriv_2divpol_evalx 707
apk_good 735
ec_half_deriv_2divpol 812
ellnf_adelicvolume 812
ellnf_bsdperiod 812
ellQ_genreduce 819
ellnf_tamagawa 840
ellheightmatrix 847
ellpadicheightmatrix 861
ellnf_minimalnormu 868
ellQ_get_Nfa 917
Q_to_globalred 952
ellminimalbmodel 952
ellnf_D_primes 952
ellnfglobalred 952
ellchangepointinv 973
ellnfembed_free 973
ellminimalprimes 987
ec_2divpol_evalx 994
Q_to_minimalprimes 1057
ellnfembed 1064
ellnf_c4c6_primes 1078
doellrootno 1120
ellnf_get_nf_prec 1162
nfembed_extraprec 1162
_sqr 1176
ellsatp 1204
ellsatp_mat 1204
ellsupersingularj 1204
ellrootno_p 1393
doellR_ab 1400
ellQtwist_bsdperiod 1407
gcomposev 1652
pointell 1890
ellwpnum_all 1911
ellheightoo 1918
val_aux 2058
ellanal_globalred 2310
ellrootno_global 2338
ellanQ_zv 2415
cardmod2 2534
F2_card 2555
ellR_area 2646
FljV_vecsat_Prickett 2807
ltors_Fl 2807
ellordinate 2996
ellordinate_i 2996
ellQminimalmodel 3045
ellminimalmodel 3108
zk_capZ 3108
safe_Z_lval 3227
cardmod3 3479
checkellisog 3528
ellinit_nf_to_Fq 3528
ellomega_cx 3543
ellnf_to_Fq 3549
ec_dFdx_evalQ 3584
F3_card 3619
ellQ_get_N 3682
sievep_bad 3787
oncurve_exact 3855
ellbasechar 3927
ellchangepointinv0 4081
ZV_is_ei 4214
ellQ_factorback 4228
get_piinv 4403
elleisnum 4459
QEV_to_ZJV 4460
direllnf_worker 4963
elldivpol0 5075
doellR_omega 5119
ellomega_agm 5119
ellweilpairing 5250
ellQ_factorback_chinese 5332
nfembedall 5516
checkell_Q 5978
elldivpol 6475
point_to_a4a6_Fl 7312
ellR_omega 7539
doellR_roots 7828
elldivpol4 8414
FljV_vecsat_Siksek 8631
ellQ_factorback_slice 8741
ellQ_factorback_worker 8741
slope_samex 8744
eta_correction 8918
_elleta 8953
ellsigma 8974
cxredsl2 9114
cxredsl2_i 9149
ellinit_Rg 9891
get_toadd 10717
ellQ_factorback_filter 10789
reduce_z 10857
FljV_vecsat 11438
invcmp 11472
doellR_roots_i 11595
nf_coordch_st 13134
approx_mod3 13160
_elleisnum 13594
ellQ_get_CM 13942
FljV_changepointinv_pre 15322
get_periods 15456
compute_periods 15533
red_modSL2 15533
check_periods 15540
nflocalred_section7 15575
ellQ_factorback1 15732
ellgenerators 16849
ellisoncurve 17192
check_complex 17528
doellgens 18690
ellff_get_D 18690
ellff_get_m 18690
ellff_get_gens 18767
ellchangepoint0 18992
ellchangepoint 19020
doellff_get_o 19292
ellff_get_o 19845
_hell 20468
ec_bmodel 21038
ellgroup0 21490
ellgroup_m 21917
ellgroup 22330
ellfromj_simple 22715
a4a6_ch 23237
ell_to_a4a6_bc 23237
ellQ_height 23710
ellheight 23822
ell_is_integral 24060
PiI2div 24514
ellneg 24620
set_gamma 24682
ellR_ab 25614
ellR_on_neutral 25614
ellR_root 25614
exphellagm 25614
hoo_aux 25614
quad_root 25614
approx_mod2 26320
elltwist 28567
ellinit_Fp 30979
ellR_roots 32217
QE_to_ZJ 33680
ellfromj 34020
a4a6_ch_Fl 34366
fix_nftype 36981
elladd 37010
ch_Q 37443
ch_R 37443
ellinit_nf 37590
nfVtoalg 37604
oncurve 39642
handle_Q 40614
doellGm 40978
ec_dmFdy_evalQ 43221
ec_LHS_evalQ 43420
nflocalred_p 51408
ellff_get_group 61831
Q_numer 71480
checkell5 72212
ellchangecurve 72212
coordch 72891
ell_reset 73143
coordch_uinv 75257
ellff_Gm 80521
ellnflocal 83790
ellcard 88256
checkcoordch 92198
Fq_c4_to_a4 93427
Fq_c4c6_to_a4a6 93428
ellQap 98574
chk_p 99848
ell_to_nfell10 99876
nflocalred_23 99876
nflocalred 102137
ellQap_u 102417
nf_compose_s 109660
nf_coordch_s 109660
FF_ellinit_ns 114373
ellinit_Fq 114506
doellcard 117971
coordch_s 118433
initsmall46 143987
get_uniformizers 151284
nf_compose_u 153510
nf_coordch_uinv 153986
ellff_get_card 163751
nf_compose_r 165371
elljissupersingular 165907
ellissupersingular 166117
nf_coordch_rt 171169
ellff_get_p 181447
nf_compose_st 184961
ellnfap 191747
elllocalred 197085
pola2a4a6 217322
pola1a2 242711
numroots3 244335
ellrandom 245847
ellffmul 250322
ellmul_Z 251310
ellmul 251429
nf_coordch_t 252097
nf_compose_rt 252602
checkell_Fq 254086
nf_compose_t 255038
nf_coordch_r 267919
to_mod 302085
coordch_t 345219
coordch_rst 348250
coordch_st 348250
sievep_good 355068
ellan_get_ap 358855
sievep 358855
ellap_CM_fast 378455
nftoalg 391195
pola3a6 393344
checkellpt 429108
ellglobalred 454167
ellQ_globalred 454566
ellQ_minimalu 457163
Z_gcd_primes 458241
ellminimalmodel_i 458633
is_trivial_change 460327
ellglobalred_i 460978
ellinit_Q 499786
ell_over_Fq 505395
min_to_ell 505939
Zec_h_evalx 519022
min_get_v 519022
min_set_all 519022
min_set_D 519036
min_set_a 519057
min_set_b 519197
min_set_c 519344
min_set_u 519344
ec_f_evalx 558326
pol2sqrt_23 587188
coordch_r 611961
ellinit 659985
ellinit_i 661007
ec_h_evalx 661126
initsmall5 672732
get_j 684933
initsmall 692934
base_ring 695559
Fl_c4c6_to_a4a6 696542
Fl_ell_to_a4a6 696542
Fl_c6_to_a6 697190
localred_23 704445
Fl_c4_to_a4 719586
numroots2 788963
get_vp_u 879487
localred_p 879487
j_pval 880880
aux 888965
aux2 1421966
localred 1583512
get_vp_u_small 1686996
localred_result 1735216
ell_to_a4a6 2276292
c4_to_a4 2276403
c4c6_to_a4a6 2276403
ellcard_ram 2330936
ellap 2493052
init_ch 2570246
checkellp 2817745
ellintegralmodel_i 3101236
checkell 3867834
handle_coeff 15506016

Generated by: LCOV version 1.14