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.18.0 lcov report (development 29712-7c8a932571) Lines: 4373 4654 94.0 %
Date: 2024-11-15 09:08:45 Functions: 388 397 97.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CM_factor 14
F2_card 5159
F3_card 6335
FF_ellinit_ns 121029
Fl_c4_to_a4 1529353
Fl_c4c6_to_a4a6 1449385
Fl_c6_to_a6 1450033
Fl_ell_to_a4a6 1449385
FljV_changepointinv_pre 15322
FljV_vecsat 11438
FljV_vecsat_Prickett 2807
FljV_vecsat_Siksek 8631
Flv_firstnonzero 147
Fq_c4_to_a4 93444
Fq_c4c6_to_a4a6 93442
PiI2div 139314
QEV_to_ZJV 4460
QE_to_ZJ 33680
Q_numer 157580
Q_to_globalred 938
Q_to_minimalprimes 29512
RgE2_Fp_init 497
ZV_is_ei 4214
Z_gcd_primes 533561
Zec_h_evalx 565817
ZtoF2 1820
_elleisnum 70994
_elleta 66353
_hell 20468
_mul 385
_sqr 1190
a4a6_ch 150702
a4a6_ch_Fl 91290
akell 693
apk_good 735
approx_mod2 140616
approx_mod3 70308
aux 891702
aux2 1424346
base_ring 1011618
bilhell 7
bilhell_i 21
bnf_get_v 63
c4_to_a4 2592166
c4c6_to_a4a6 2592179
cardmod2 5138
cardmod3 6195
ch_FF 126
ch_Fp 7
ch_Fq 119
ch_NF 157647
ch_Q 90559
ch_Qp 35
ch_R 90559
ch_Rg 7
check_complex 82432
check_periods 72940
checkcoordch 378267
checkell 4413893
checkell5 229551
checkell_Fq 254086
checkell_Q 8239
checkell_Qp 0
checkell_int 693
checkellisog 3528
checkellp 3113057
checkellpt 0
checkellpt_i 880368
chk_p 99638
compute_periods 72933
coordch 230258
coordch_r 770973
coordch_rst 506548
coordch_s 119371
coordch_st 506548
coordch_t 370601
coordch_uinv 246708
cxredsl2 37828
cxredsl2_i 37863
direllnf_worker 4963
doellGm 146454
doellR_ab 58842
doellR_eta 70
doellR_omega 52199
doellR_roots 169792
doellR_roots_i 231029
doellcard 223425
doellff_get_o 19292
doellgens 18690
doellnfrootno 161
doellrootno 3262
ec_2divpol_evalx 29715
ec_3divpol_evalx 65276
ec_LHS_evalQ 129723
ec_bmodel 247136
ec_dFdx_evalQ 136137
ec_dFdy_evalQ 532
ec_dmFdy_evalQ 256056
ec_f_evalx 783719
ec_h_evalx 1177215
ec_half_deriv_2divpol 812
ec_half_deriv_2divpol_evalx 707
ec_phi2 105
ellQ_bsd 28
ellQ_eulerf 56
ellQ_factorback 4228
ellQ_factorback1 15732
ellQ_factorback_chinese 5332
ellQ_factorback_filter 10789
ellQ_factorback_slice 8741
ellQ_factorback_worker 8741
ellQ_genreduce 833
ellQ_get_CM 20382
ellQ_get_N 8057
ellQ_get_Nfa 917
ellQ_globalred 456708
ellQ_height 52410
ellQ_isdivisible 42
ellQ_isdivisible_test 42
ellQ_isisom 7
ellQ_minimalu 503958
ellQ_rootno 91
ellQ_saturation 49
ellQ_tamagawa 49
ellQap 98567
ellQap_u 111167
ellQminimalmodel 21399
ellQp_P2t 140
ellQp_P2t_err 21
ellQp_t2P 56
ellQtwist_bsdperiod 19747
ellR_ab 83056
ellR_area 11816
ellR_eta 84
ellR_omega 92491
ellR_on_neutral 83056
ellR_root 83056
ellR_roots 222881
ell_is_integral 52753
ell_over_Fq 505365
ell_reset 230496
ell_to_a4a6 2592007
ell_to_a4a6_bc 150702
ell_to_nfell10 181783
elladd 57457
ellan 525
ellanQ 329
ellanQ_zv 6699
ellan_get_ap 1082242
ellanal_globalred 4543
ellap 2584108
ellap_CM_fast 1135064
ellbasechar 9135
ellbsd 70
ellcard 187032
ellcard_ram 2421990
ellchangecurve 229551
ellchangeinvert 70
ellchangepoint 147736
ellchangepoint_i 147694
ellchangepointinv 1015
ellchangepointinv_i 4095
elldivpol 13111
elldivpol0 5075
elldivpol4 15050
elleisnum 4459
elleta 84
elleulerf 70
ellexpo 7
ellff_Gm 185997
ellff_get_D 18690
ellff_get_card 269205
ellff_get_gens 18767
ellff_get_group 167307
ellff_get_m 18690
ellff_get_o 19845
ellff_get_p 385699
ellffmul 250271
ellfromj 34020
ellfromj_simple 22715
ellgenerators 16849
ellglobalred 454181
ellglobalred_i 469728
ellgroup 127806
ellgroup0 21490
ellgroup_m 120715
ellheight 81243
ellheight0 57659
ellheight_C 28728
ellheightfaltings 70
ellheightmatrix 861
ellheightoo 30660
ellheightpairing 35
ellinit 899471
ellinit_Fp 165123
ellinit_Fq 114484
ellinit_Q 569352
ellinit_Qp 203
ellinit_Rg 67361
ellinit_i 900500
ellinit_nf 73395
ellinit_nf_to_Fq 137725
ellintegralbmodel 0
ellintegralmodel 2478
ellintegralmodel_i 3303179
elliscm 154
ellisisom 14
ellisoncurve 45899
ellissupersingular 166117
elljissupersingular 165907
elllocalred 197085
elllog 140
elllseries 14
ellminimalbmodel 966
ellminimaldisc 70
ellminimalmodel 21469
ellminimalmodel_i 507570
ellminimalprimes 58618
ellminimaltwist 665
ellminimaltwist0 448
ellminimaltwistcond 399
ellmul 251398
ellmul_CM 14
ellmul_CM_aux 14
ellmul_Z 251279
ellneg 82034
ellneg_i 70
ellnf2isog 273
ellnf_D_primes 938
ellnf_adelicvolume 812
ellnf_bsd 42
ellnf_bsdperiod 812
ellnf_c4c6_primes 29603
ellnf_get_CM 56
ellnf_get_nf_prec 58618
ellnf_height 28833
ellnf_isisom 7
ellnf_localheight 85988
ellnf_minimalnormu 29680
ellnf_reladelicvolume 231
ellnf_rootno_global 161
ellnf_tamagawa 840
ellnf_to_Fq 137746
ellnf_vec_wrap 168
ellnf_vecarea 91
ellnf_veceta 28
ellnf_vecomega 49
ellnf_volume 56
ellnfan 203
ellnfap 191765
ellnfembed 29799
ellnfembed_free 987
ellnfglobalred 938
ellnflocal 83779
ellnfminimalmodel 63
ellnfminimalmodel_i 63
ellomega_agm 52199
ellomega_cx 42619
ellordinate 3010
ellordinate_i 3010
ellpadicheight0 70
ellpadicheightmatrix 875
ellperiods 28749
ellpointnfembed 28819
ellprint 0
ellrandom 245847
ellrnfup 343
ellrootno 203
ellrootno_2 1673
ellrootno_3 1421
ellrootno_global 4585
ellrootno_p 3374
ellsatp 1204
ellsatp_mat 1204
ellsaturation 49
ellsea 126
ellsigma 37674
ellsub 49
ellsupersingularj 1204
elltamagawa 49
elltaniyama 14
elltatepairing 301
elltrace 70
elltwist 28574
elltwist_card 0
ellweilpairing 5250
ellwp 0
ellwp0 182
ellwpnum_all 1911
ellwpseries 14
ellwpseries_aux 301
ellxn 406
ellzeta 161
eta_correction 37618
exphellagm 83056
fix_nftype 230433
gcomposev 15778
get_c4c6 294
get_j 981896
get_periods 72856
get_piinv 157913
get_r0 189
get_toadd 39431
get_uniformizers 310905
get_vp_u 881468
get_vp_u_small 1702543
handle_Q 41216
handle_coeff 16515500
hoo_aux 83056
init_ch 2694496
initsmall 989897
initsmall46 194439
initsmall5 944705
invcmp 236388
is_trivial_change 525525
j_pval 884842
kod_23 3094
localred 1587901
localred_23 706853
localred_p 881468
localred_result 1899226
localredbug 0
ltors_Fl 2807
min_get_v 565817
min_set_2 35
min_set_3 140
min_set_D 565831
min_set_a 565852
min_set_all 565817
min_set_b 565992
min_set_c 566139
min_set_u 566139
min_to_ell 552734
myroundr 42
nb_real_components 9632
neron_2 1673
neron_3 595
nfVtoalg 116599
nf_compose_r 479230
nf_compose_rt 593824
nf_compose_s 184637
nf_compose_st 496188
nf_compose_t 842954
nf_compose_u 443534
nf_coordch 476
nf_coordch_r 499738
nf_coordch_rst 476
nf_coordch_rt 301348
nf_coordch_s 184637
nf_coordch_st 19378
nf_coordch_t 407287
nf_coordch_uinv 444010
nfembed_extraprec 58618
nfembedall 206633
nflocalred 261758
nflocalred_23 181783
nflocalred_p 129122
nflocalred_section7 27524
nfrestrict23 42
nftoalg 1501269
numroots2 790440
numroots3 245056
oncurve 125945
oncurve_exact 3855
padic_prec 252
point_to_a4a6 0
point_to_a4a6_Fl 64236
pointell 1890
pol2sqrt_23 1626562
pola1a2 579397
pola2a4a6 592746
pola3a6 1069803
prV_merge_factors 28812
quad_root 83056
real_prec 84
red_modSL2 72933
reduce_z 39557
rootnovalp 273
safe_Z_lval 29386
set_gamma 110796
sievep 1082242
sievep_bad 12544
sievep_good 1069698
slope_samex 29184
to_RgX 126
to_mod 1959133
triv_ser 0
twist2 392
val_aux 9282
val_init 3094
zell 28903
zell_closest_0 14
zell_i 28770
zellcx 28735
zellrealneg 7
zellrealpos 28
zk_capZ 60144

Generated by: LCOV version 1.16