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 16624-25b9976) Lines: 877 944 92.9 %
Date: 2014-06-24 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
F2x_degree_lg 48602844
F2x_addshiftip 25450493
F2v_add_inplace 14894591
F2x_degree 12866308
F2x_rem 9138439
F2x_add 4059598
F2x_mulspec 3708058
F2x_shiftip 3631920
F2x_mul1 3161505
F2x_mul 2767228
F2x_divrem 2551927
ZV_to_F2v 1297808
F2x_sqr 1266826
F2xq_sqr 1177634
F2x_gcd 821960
F2xq_mul 798570
F2c_to_ZC 620166
F2x_addspec 558724
F2x_addshift 546495
F2x_to_F2v 229687
F2xq_inv 222677
F2xq_invsafe 222677
F2x_extgcd 222677
ZM_to_F2m 211259
F2xq_div 201782
F2x_deriv 184400
_F2xq_mul 168793
_F2xq_sqr 158823
F2m_to_ZM 108823
_F2xq_one 71902
F2x_is_smooth_squarefree 71370
F2x_shift 69792
Rg_to_F2xq 69670
F2x_shiftpos 69363
F2x_to_ZX 65628
Flx_to_F2x 62021
F2x_is_smooth 61083
_F2xq_cmul 53055
F2xq_trace 46667
F2x_pow2n 44596
random_F2x 43940
_F2xq_add 42742
rel_Coppersmith 38585
F2xq_matrix_pow 36907
F2xq_powers 36907
F2xV_to_F2m 36907
_F2xq_red 35390
F2x_valrem 31778
F2x_deflate 25871
F2xq_Artin_Schreier 22197
F2x_sqrt 12570
F2x_to_Flx 10612
F2x_F2xq_eval 10598
F2x_issquare 10287
F2x_even_odd 8069
F2xq_sqrt_fast 8069
F2xq_autpow_sqr 6121
mkF2 5346
F2x_factorel 5248
RgV_to_F2v 5237
F2xq_pow 4585
F2xq_autpow_mul 4467
Flv_to_F2v 4322
ZX_to_F2x 4056
F2xq_sqrt 3507
F2xq_autpow 3395
F2x_is_x 3395
F2xq_powu 2617
F2c_to_Flc 2418
F2c_to_mod 2150
Z_to_F2x 1296
ZXX_to_F2xX 1234
F2xC_to_ZXC 1234
F2m_to_Flm 884
Flm_to_F2m 884
_F2xq_pow 737
_F2xq_rmul 475
F2x_1_add 465
F2x_shiftneg 429
F2xq_order 258
RgM_to_F2m 180
F2x_halfgcd_i 113
F2x_halfgcd 113
_F2xq_equal0 105
_F2xq_neg 100
F2m_to_mod 70
_F2xq_s 70
gener_F2xq 60
_F2xq_inv 55
F2xq_easylog 45
_F2xq_rand 43
get_F2xq_field 40
F2xq_sqrtn 40
F2xq_log_Coppersmith_d 39
F2xq_log_from_rel 38
F2v_slice 20
F2xq_log 15
F2xq_log_find_rel 11
F2xq_log_Coppersmith_rec 10
F2m_rowslice 10
F2xq_log_index 5
F2xq_conjvec 5
check_kernel 5
F2xq_log_Coppersmith 5
smallirred_F2x 5
F2x_F2xqV_eval 0
RgX_to_F2x 0
_F2xq_zero 0

Generated by: LCOV version 1.9