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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 1532 1831 83.7 %
Date: 2023-08-26 07:54:43 Functions: 188 211 89.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2xC_to_FlxC 0
F2xXV_to_F2xM 0
F2xX_F2x_add 0
F2xX_to_F2xC 0
F2xXn_red 0
F2xY_F2xq_evalx 0
F2x_deflate 0
F2x_recip 0
F2x_recip_raw 0
F2xqXM_F2xqX_mul2 0
F2xqXM_mul2 0
F2xqX_F2xqXM_qmul 0
F2xqX_addmulmul 0
F2xqX_extgcd_halfgcd 0
F2xqX_halfgcd 0
F2xqX_halfres 0
F2xqX_halfres_split 0
F2xqX_halfres_update 0
F2xqX_powu 0
_F2xqX_mul 0
_F2xqX_sqr 0
matJ2_F2xXM 0
matid2_F2xXM 0
F2xqX_invBarrett_basecase 3
F2xqXQ_inv 7
F2xqXQ_invsafe 7
F2xqXQ_pow 7
F2xqX_halfgcd_all 7
F2xqX_halfgcd_all_i 7
F2xqX_halfres_basecase 7
F2xqX_halfres_i 7
F2xq_conjvec 7
F2xqX_disc 14
F2xqX_extgcd 14
F2xqX_extgcd_basecase 14
F2xq_log_Coppersmith 14
F2xq_log_index 14
F2xq_pow_init 14
check_kernel 14
smallirred_F2x 14
F2xqX_resultant 21
F2xqX_resultant_basecase 21
F2xn_div1 28
F2xn_inv 28
F2xq_log_Coppersmith_rec 28
F2x_recip1 42
F2xn_div 42
F2xn_inv1 42
F2xn_inv_basecase1 42
F2xqX_invBarrett_Newton 44
F2xn_mul 46
F2xqX_invBarrett 47
F2xq_powu 49
F2xX_to_FlxX 56
_F2xqXQ_zero 56
F2xqXQV_red 63
F2xq_log_find_rel 63
monomial_F2x 63
F2xq_log_from_rel 77
F2xn_red 83
F2xq_log_Coppersmith_d 91
F2x_mulspec_mulii 102
int_to_F2x 102
gener_F2xq 154
F2x_degreespec 204
F2x_to_int 204
F2x_to_F2xX 378
F2xq_order 378
_F2xq_inv 413
F2x_halfgcd 473
F2x_halfgcd_i 473
FlxXC_to_F2xXC 483
polx_F2xX 532
_F2xq_s 693
_F2xq_neg 798
_F2xq_equal0 973
FlxX_to_F2xX 1029
F2x_shiftneg 1050
F2xXC_to_ZXXC 1190
F2xX_addspec 1241
F2xqX_divrem_Barrett 1244
F2xqX_divrem_Barrettspec 1244
RgX_to_F2x 1400
F2xX_to_ZXX 1561
get_F2xq_field 1659
F2xq_log_Coppersmith_worker 2114
F2xX_recipspec 2532
F2xqXQ_auttrace 2709
random_F2xqX 2821
F2xqX_mulspec 3103
F2xX_lgrenormalizespec 3415
F2xC_to_ZXC 3710
F2xqXQ_auttrace_sqr 4900
ZXX_to_F2xX 4907
F2xq_pow_table 5246
F2xX_to_Kronecker_spec 6206
F2xqX_F2xq_mul 7021
F2xq_sqrtn 7021
F2xqXQ_auttrace_mul 7231
F2xqXQ_powers 7854
_F2xq_rand 9107
F2x_eval 12760
_F2xq_rmul 13748
F2xqX_F2xqXQV_eval 14511
F2xq_autpow_mul 14860
F2x_factorel 15247
FlxC_to_F2xC 16457
F2x_is_x 19321
F2xq_autpow 19328
mkF2 27159
F2xq_autpow_sqr 29560
F2xV_to_FlxV_inplace 30379
_F2xqXQ_sqr 33271
F2xqXQ_autpow_mul 33453
F2xqX_divrem 33516
F2x_valrem 35259
F2x_issquare 36962
F2xq_sqrt 38788
F2x_addshift 44696
F2x_F2xq_eval 45148
F2x_even_odd 63428
F2xq_sqrt_fast 63428
F2x_addspec 69407
F2xqXQ_autpow 70700
F2xX_deriv 80752
F2xqXQ_autpow_sqr 89019
F2xqXQ_sqr 104531
F2xqX_sqr 105497
_F2xqXQ_mul 114604
F2xqXQ_mul 114660
F2xqX_F2xqXQ_eval 122472
F2x_to_Flx 133729
F2xY_F2xqV_evalx 136934
Flx_to_F2x 152641
F2x_pow2n 153345
F2xqX_mul 154241
rel_Coppersmith 154366
Kronecker_to_F2xqX 157344
F2xqX_gcd_basecase 169904
F2xqX_gcd 170254
F2x_1_add 190338
F2xqX_F2xq_mul_to_monic 206633
F2xqX_normalize 206647
F2xY_degreex 206990
Z_to_F2x 210455
F2xq_Artin_Schreier 212786
F2x_get_red 219632
F2xqX_get_red 220976
F2x_is_smooth 231672
F2xV_to_F2m 236074
F2xq_matrix_pow 236076
F2x_matFrobenius 236077
F2x_sqrt 239373
F2x_shiftpos 257448
F2x_shift 258453
_F2xq_zero 259959
F2x_is_smooth_squarefree 268377
F2xX_to_Kronecker 308482
_F2xqXQ_add 345583
_F2xqXQ_red 352870
F2xq_powers 365779
_F2xqXQ_one 376362
F2xX_add 424109
pol1_F2xX 448014
F2xq_trace 458564
F2xX_F2x_mul 482510
_F2xqXQ_cmul 482510
F2xq_log 543649
F2xqX_divrem_basecase 546681
F2xq_easylog 559209
F2xq_div 575625
_F2xq_red 586118
F2x_Frobenius 596767
F2x_F2xqV_eval 611975
F2xqX_rem 751653
get_F2xqX_red 785169
_F2xq_one 931375
F2xqX_red 1007074
Rg_to_F2xq 1165727
_F2xq_sqr 1208734
F2x_deriv 1215817
F2x_to_ZX 1248682
F2xV_to_ZXV_inplace 1378205
F2x_to_F2v 1563569
F2x_slice 1583090
_F2xq_add 1724812
F2xq_inv 2058110
F2x_extgcd 2058117
F2xq_invsafe 2058117
_F2xq_cmul 2114163
_F2xq_mul 2188964
_F2xq_pow 2389230
F2xq_pow 2432521
F2xX_renormalize 2715814
ZX_to_F2x 3089058
F2x_gcd 3585922
F2x_mulspec_basecase 5121820
F2xq_sqr 8634611
F2x_sqr 8939242
F2xq_mul 10060011
F2x_divrem 13171814
F2x_mul1 20698371
F2x_shiftip 25850880
F2x_mul 30208560
F2x_mulspec 30270221
F2x_add 32852801
F2x_rem 47071477
F2x_degree 79138911
F2x_addshiftip 138584597
F2x_addshiftipspec 171837300
F2x_degree_lg 268154080

Generated by: LCOV version 1.14