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-bordeaux1.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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16375-9f41ae0) Lines: 877 944 92.9 %
Date: 2014-04-19 Functions: 105 108 97.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 473 605 78.2 %

Function Name Sort by function name Hit count Sort by hit count
F2c_to_Flc 3382
F2c_to_ZC 800014
F2c_to_mod 3010
F2m_rowslice 14
F2m_to_Flm 1236
F2m_to_ZM 133017
F2m_to_mod 98
F2v_add_inplace 14661476
F2v_slice 28
F2xC_to_ZXC 1698
F2xV_to_F2m 51749
F2x_1_add 647
F2x_F2xqV_eval 0
F2x_F2xq_eval 14786
F2x_add 5680848
F2x_addshift 704033
F2x_addshiftip 35623942
F2x_addspec 721766
F2x_deflate 35778
F2x_degree 17966979
F2x_degree_lg 67962870
F2x_deriv 256564
F2x_divrem 3584615
F2x_even_odd 11279
F2x_extgcd 311937
F2x_factorel 7348
F2x_gcd 1144466
F2x_halfgcd 157
F2x_halfgcd_i 157
F2x_is_smooth 85081
F2x_is_smooth_squarefree 99484
F2x_is_x 4731
F2x_issquare 14403
F2x_mul 3884178
F2x_mul1 4382915
F2x_mulspec 5094696
F2x_pow2n 61564
F2x_rem 12744481
F2x_shift 96844
F2x_shiftip 4988174
F2x_shiftneg 603
F2x_shiftpos 96241
F2x_sqr 1767362
F2x_sqrt 17558
F2x_to_F2v 321901
F2x_to_Flx 14857
F2x_to_ZX 90871
F2x_valrem 44047
F2xq_Artin_Schreier 31055
F2xq_autpow 4731
F2xq_autpow_mul 6233
F2xq_autpow_sqr 8539
F2xq_conjvec 7
F2xq_div 282705
F2xq_easylog 63
F2xq_inv 311937
F2xq_invsafe 311937
F2xq_log 21
F2xq_log_Coppersmith 7
F2xq_log_Coppersmith_d 55
F2xq_log_Coppersmith_rec 14
F2xq_log_find_rel 15
F2xq_log_from_rel 54
F2xq_log_index 7
F2xq_matrix_pow 51749
F2xq_mul 1118345
F2xq_order 362
F2xq_pow 6419
F2xq_powers 51749
F2xq_powu 3667
F2xq_sqr 1644234
F2xq_sqrt 4887
F2xq_sqrt_fast 11279
F2xq_sqrtn 56
F2xq_trace 65150
Flm_to_F2m 1236
Flv_to_F2v 6046
Flx_to_F2x 86240
RgM_to_F2m 254
RgV_to_F2v 7415
RgX_to_F2x 0
Rg_to_F2xq 97083
ZM_to_F2m 274675
ZV_to_F2v 1659327
ZXX_to_F2xX 1698
ZX_to_F2x 5592
Z_to_F2x 1784
_F2xq_add 59682
_F2xq_cmul 74069
_F2xq_equal0 147
_F2xq_inv 77
_F2xq_mul 236365
_F2xq_neg 140
_F2xq_one 100572
_F2xq_pow 1029
_F2xq_rand 63
_F2xq_red 49376
_F2xq_rmul 665
_F2xq_s 98
_F2xq_sqr 222433
_F2xq_zero 0
check_kernel 7
gener_F2xq 84
get_F2xq_field 56
mkF2 7460
random_F2x 61352
rel_Coppersmith 54019
smallirred_F2x 7

Generated by: LCOV version 1.9