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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28880-3b5364847c) Lines: 1631 1791 91.1 %
Date: 2023-12-01 07:53:15 Functions: 184 197 93.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_FpXV_multirem 0
FpX_Fp_add_shallow 0
FpX_chinese_coprime 0
FpX_integ 0
FpXn_exp 0
FpXn_sqr 0
FqV_inv 0
_FpX_one 0
_FpX_red 0
_FpX_zero 0
get_FpX_algebra 0
FpXQ_conjvec 8
matJ2_FpXM 8
FpVV_polint_tree 15
FpXQ_charpoly 15
FpXQ_autpow_msqr 21
FpV_polint 22
FpX_extresultant_basecase 24
matid2_FpXM 24
FpX_disc 42
Fq_ispower 70
FpX_extresultant 77
FpX_halfres 106
FpXQM_autsum 147
FpX_invLaplace 158
FpXQM_autsum_sqr 217
FpXM_FpXQV_eval 315
FpXQM_autsum_mul 315
FpXQ_auttrace_sqr 317
FpXQ_auttrace_mul 360
FpXQ_auttrace 438
FpX_Laplace 576
FpXC_FpXQ_eval 588
FpXV_chinese 588
FpXV_chinese_tree 588
FpXV_chinesetree 588
FpXV_invdivexact 588
FpXV_producttree 588
FpXV_sqr 588
FpX_FpXV_multirem_tree 588
gc_chinese 588
_FpXQ_easylog 624
FpX_halfgcd 631
FpX_gcd_check 765
Fp_neg_FpX 935
FpX_convol 994
FpXQ_transmul_init 1024
FpXQ_sqrtn 1420
FpXC_FpXQV_eval 1470
FpX_invBarrett_Newton 1544
Z_to_FpX 1726
FpXQ_autpowers 1764
FpXQ_order 1883
_FpXQ_rand 1959
FpXQ_transmul 2645
get_FpXQ_star 3116
FpX_invBarrett_basecase 3264
FpX_halfres_update 3749
_FpXQ_zero 4123
FpX_resultant_basecase 4220
FpXQ_autsum 4384
FpXQ_autsum_sqr 4454
FpXV_FpX_fromdigits 4564
FpX_invBarrett 4861
FpXQ_autpow 5054
FpXQ_autpow_sqr 5767
FpXQ_autsum_mul 6078
FpXn_div 6412
FpXn_inv 6412
bounded_order 6422
gener_FpXQ 7002
FpXT_sqr 7602
FpX_dotproduct 8006
FpX_divu 8610
get_FpXQ_algebra 10199
FpX_Fp_sub_shallow 11146
FpX_fromNewton 11334
FpX_digits 11403
FpXQ_minpoly 13308
FpX_extgcd_halfgcd 13435
FpX_halfgcd_all_i 15100
FpX_halfgcd_all 15212
FpX_FpXM_qmul 16341
FpXM_mul2 16432
FpXV_factorback 16553
FpXn_expint 17249
FpX_halfres_split 17425
Fp2_norm 19500
Fp2_sqrt 19931
_FpX_add 20062
Fp_red_FpX 21001
FpXQ_trace 21092
Fp_FpX_sub 25683
_FpX_pow 26306
FpX_matFrobenius 31466
FpX_halfres_basecase 31531
FpV_invVandermonde 31772
FpV_producttree 31787
FpX_FpV_multieval_tree 31788
FpXV_producttree_dbl 32375
FpX_FpXV_multirem_dbl_tree 32376
FpXM_FpX_mul2 33750
FpV_inv 34215
FpX_is_squarefree 40859
FpX_halfres_i 48956
FpX_gcd_basecase 52514
_FpXQ_sub 52941
FpX_integXn 55491
FpXn_mulhigh 59410
FpXQ_matrix_pow 66262
FpXQ_sqrt 80971
FpX_addmulmul 81209
gener_FpXQ_local 83299
gener_FpXQ_i 83337
_FpX_sqr 85908
FpV_roots_to_pol 92996
FpX_halve 94891
FpX_mulhigh_i 114901
FpX_Fp_mul_to_monic 123375
_FpX_divrem 134778
FpX_div_by_X_x 164955
FpX_rescale 177556
FpXn_red 199650
FpX_center 202335
FpX_divrem_Barrett 213266
FpX_divrem_Barrettspec 214012
_FpXQ_pow 222936
FpXQ_pow_Frobenius 238152
FpX_valrem 253251
random_FpX 259550
FpX_powu 307041
FpXV_prod 307967
FpXQ_norm 360677
_FpX_mul 367350
FpXQ_powers 383260
FpXQ_issquare 389862
FpX_Frobenius 400079
FpXV_red 404166
FpX_FpXQV_eval 408132
FpX_resultant 413386
FpX_recipspec 432621
ZX_lgrenormalizespec 459560
FpX_neg 459949
FpX_Newton 518262
FpXn_recip 529102
FpX_gcd 537274
Fp_FpXQ_log 545194
FpX_Fp_sub 588553
FpXQ_powu 603582
FpXQ_div 621539
FpX_extgcd_basecase 675610
FpXQ_log 701706
FpX_Fp_div 703014
FpX_FpXQ_eval 792563
_FpXQ_red 883839
_FpXQ_one 886748
FpXQ_pow 891738
FpX_Fp_add 906640
FpX_shift 957172
FpX_eval 960238
FpX_get_red 1001118
FpXQ_invsafe 1182468
FpXQ_inv 1182469
FpX_deriv 1193444
FpX_center_i 1241161
FpX_mulu 1279602
Fp_issquare 1292959
FpX_extgcd 1516928
Fq_issquare 1567191
FpXT_red 1665157
_FpXQ_mul 1705066
FpX_normalize 1778562
to_Flxq 2060505
Fq_log 2187035
_FpXQ_add 2262685
FpXn_mul 2559682
_FpXQ_cmul 2676980
_FpXQ_sqr 5177602
FpX_Fp_mul 5836899
FpX_Fp_mulspec 5851710
FpXQ_sqr 6270260
FpX_sqr 6462543
FpX_mulspec 7998920
FpXQ_mul 11897860
FpX_divrem 14207635
FpX_sub 14705193
FpX_subspec 14919204
FpX_add 16995381
FpXQ_red 17770709
FpX_mul 26913762
to_Flx 43640795
FpX_divrem_basecase 66887517
FpX_rem 71770460
get_FpX_red 85977275
FpX_red 92888296

Generated by: LCOV version 1.14