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 - ellrank.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29115-f22e516b23) Lines: 1143 1222 93.5 %
Date: 2024-03-01 08:05:13 Functions: 108 115 93.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
hyperell_locally_soluble 0
lemma6 0
lemma6nf 0
lemma7 0
lemma7_aux 0
psquarenf 0
zpsol 0
nfhilbert 21
check_oncurve 42
ell2selmer_basis 49
ell2cover 56
ellrankinit 63
ellrank_get_nudur 98
quad_char 140
Z_quad_char 161
randS 189
elltwistpoint 224
get_kerval 245
nf2selmer_quad 245
repres 252
hilb2nf 259
locally_soluble 259
nf_hyperell_locally_soluble 259
matcassels 308
bestS 441
bnfselmer 441
nfV_factorbackmod 441
nfV_zm_factorback 441
prV_ZM_factorback 441
Q2_hyperell_lift 462
get_row 490
psquare2nf 511
den_remove 518
cassels_oo_solve 532
cassels_oo_solve_i 532
nfhilbertp 567
randu 567
nfhilbert0 581
first_divisor 643
gtoset_inplace 770
vecellabs 770
bnfselmerQ 812
ellrank 812
elltwistequation 826
makevbnf 854
ellrank_flag 868
ell2selmer 875
ellLS2image 875
ellsearchtrivialpoints 875
kernorm 875
vbnf_discfactors 875
vecsmallbasis 875
nfC_prV_val 882
Z_factor_addprimes 1309
hyperell_lift 1355
elltwistpoints 1645
ell2pol 1729
projratpointxz2 1749
matselmersign 1750
Q2_hyperell_solve 2296
casselspairing 2296
enfsqrt 2296
quartic_H 2296
quartic_hessiandd 2296
vecnfsqrtmod 2296
Q2_hyperell_regpoint 2863
Q2_hyperell_solve_affine 2863
ZC_add_coeff 3206
liftselmer 3338
liftselmer_cover 3570
ellabs 3913
projratpointxz 4448
quartic_disc 4501
quartic_findunit 4501
to_ZX 4592
RgXV_homogenous_evaldeg 5355
_factorbackmod 5614
lemma7nf 5642
zpsolnf 5642
ZV_iseven 5908
nfsqrt 6090
nfsqrt_safe 6090
quarticinv_pol 6797
liftselmerinit 6908
qf_disc_fact 7097
quartic_minim_all 7097
redquadric 7097
RgVV_nb 8379
dim_selmer 8379
elllocalimage 8379
polrootsmodpn 8379
setlgall 8379
quartic_cubic 12754
veckpmodsquares 16758
ZC_shifti 17442
selmerbasis 17442
quartic_IJ 18395
basis 18940
tracematrix 19549
RgX_homogenous_evaldeg 19635
RgXV_cxeval 21315
Qp_hyperell_solve_odd 57449
affine_apply 57449
cassels_Qp_solve 59745
hyperell_local_solve 59745
selmersign 72478
ZV_isneg 90272
Qp_issquare 105525
hyperell_red 114898
FpX_issquare 115346
hyperell_reg_point 116591
_trace 117294
to_principal_unit 164024
kpmodsquares 785078
kpmodsquares1 1603735

Generated by: LCOV version 1.14