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 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 18953-2660f45) Lines: 1226 1317 93.1 %
Date: 2016-05-30 Functions: 154 159 96.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 623 793 78.6 %

Function Name Sort by function name Hit count Sort by hit count
F2x_degree_lg 165436243
F2x_addshiftipspec 119128780
F2x_addshiftip 92008703
F2x_degree 41002048
F2v_add_inplace 29962459
F2x_add 29302501
F2x_mulspec 29228208
F2x_mul 29207204
F2x_rem 25708257
F2x_shiftip 25692500
F2x_mul1 20690950
F2x_divrem 10519775
F2x_mulspec_basecase 4991101
F2xq_mul 3787420
F2x_sqr 2827428
F2xq_sqr 2663704
ZV_to_F2v 2171142
F2xX_renormalize 1891379
_F2xq_cmul 1286462
F2x_gcd 1276427
F2c_to_ZC 1025380
_F2xq_add 999102
F2x_slice 918162
F2xq_inv 916638
F2xq_invsafe 916638
F2x_extgcd 916638
F2xqX_rem 779534
F2xqX_divrem 657041
F2xqX_red 599235
_F2xq_mul 554957
_F2xq_one 540455
_F2xq_sqr 511896
F2x_F2xqV_eval 476833
ZM_to_F2m 392872
_F2xq_red 388725
_F2xqXQ_cmul 385175
F2xX_F2x_mul 385175
F2x_to_F2v 371231
F2xX_add 349881
F2xq_div 343105
pol1_F2xX 337064
F2xq_pow 294926
F2x_deriv 292736
_F2xq_pow 289569
_F2xqXQ_add 286734
_F2xqXQ_one 280028
_F2xqXQ_red 276052
_F2xq_zero 225764
F2m_to_ZM 201441
F2xqX_gcd 193935
F2xX_to_Kronecker 190470
F2x_1_add 173662
ZX_to_F2x 173660
Rg_to_F2xq 165938
F2xY_degreex 162974
F2xqX_F2xq_mul_to_monic 160846
F2xqX_normalize 160846
Z_to_F2x 157311
const_F2v 153373
F2xq_powers 152362
Flx_to_F2x 146957
F2x_shift 116816
F2x_shiftpos 116326
F2x_is_smooth_squarefree 109956
F2x_to_ZX 106154
F2xY_F2xqV_evalx 98476
F2x_is_smooth 95417
F2xqXQ_mul 95235
F2xqX_mul 95235
_F2xqXQ_mul 95235
Kronecker_to_F2xqX 95235
F2xqX_sqr 89012
F2xqXQ_sqr 89012
F2x_to_Flx 87577
F2xqX_F2xq_mul 86632
F2xq_easylog 86163
F2xq_trace 85013
F2xqX_F2xqXQ_eval 84840
F2x_pow2n 81760
F2x_Frobenius 77875
F2xX_deriv 66087
F2xq_matrix_pow 60704
F2xV_to_F2m 60704
F2xqXQ_autpow_sqr 56322
F2xqXQV_autpow 56322
rel_Coppersmith 54019
F2xq_log 53298
F2x_valrem 45351
F2xq_sqrt_fast 41605
F2x_even_odd 41604
F2xq_Artin_Schreier 39865
F2x_deflate 36792
F2x_F2xq_eval 36353
_F2xqXQ_sqr 32683
F2xq_sqrt 29572
F2xqXQ_autpow_mul 28518
F2xq_autpow_sqr 23521
F2x_matFrobenius 20839
F2x_sqrt 18641
mkF2 18281
F2x_addspec 17997
F2x_is_x 15230
F2xq_autpow 15229
F2x_issquare 14567
FlxC_to_F2xC 14091
F2xqX_F2xqXQV_eval 13636
F2x_addshift 13386
F2xq_autpow_mul 12818
RgV_to_F2v 7686
F2x_factorel 7504
F2xqXQ_auttrace_mul 6818
F2xqXQ_powers 6818
Flv_to_F2v 6496
F2xqXQ_auttrace_sqr 4606
F2xq_powu 3976
F2v_to_Flv 3682
F2c_to_mod 3045
random_F2xqX 2618
F2xqXQV_auttrace 2618
F2xC_to_ZXC 2597
ZXX_to_F2xX 2597
F2m_to_Flm 1386
Flm_to_F2m 1386
F2xq_sqrtn 875
_F2xq_rmul 728
F2x_shiftneg 490
F2xq_order 350
F2x_halfgcd_i 315
F2x_halfgcd 315
RgM_to_F2m 287
F2x_eval 224
_F2xq_equal0 182
_F2xq_neg 161
RgX_to_F2x 140
F2xq_log_find_rel 119
_F2xq_s 119
F2m_to_mod 112
gener_F2xq 91
_F2xq_rand 91
_F2xq_inv 91
get_F2xq_field 70
F2xq_log_Coppersmith_d 42
monomial_F2x 35
_F2xqXQ_zero 35
F2v_slice 28
F2xq_log_from_rel 28
F2xq_log_Coppersmith_rec 14
F2m_rowslice 14
F2xq_log_index 7
F2xq_conjvec 7
check_kernel 7
F2xq_log_Coppersmith 7
F2xqXQ_pow 7
smallirred_F2x 7
polx_F2xX 0
F2xC_to_FlxC 0
F2xY_F2xq_evalx 0
F2xX_to_ZXX 0
FlxX_to_F2xX 0

Generated by: LCOV version 1.9