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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20443-183d202) Lines: 1199 1332 90.0 %
Date: 2017-03-27 05:17:48 Functions: 145 153 94.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 0
FpV_FpM_polint 0
FpV_inv 1540
FpV_invVandermonde 1540
FpV_polint 0
FpV_producttree 1540
FpV_roots_to_pol 4160
FpXC_FpXQV_eval 610
FpXM_FpXQV_eval 220
FpXM_FpX_mul2 4
FpXM_mul2 4
FpXQM_autsum 100
FpXQM_autsum_mul 220
FpXQM_autsum_sqr 150
FpXQ_autpow 365
FpXQ_autpow_mul 5
FpXQ_autpow_sqr 385
FpXQ_autpowers 505
FpXQ_autsum 550
FpXQ_autsum_mul 1075
FpXQ_autsum_sqr 560
FpXQ_auttrace 10
FpXQ_auttrace_mul 5
FpXQ_auttrace_sqr 5
FpXQ_charpoly 0
FpXQ_conjvec 5
FpXQ_div 161360
FpXQ_inv 205987
FpXQ_invsafe 206002
FpXQ_issquare 2300
FpXQ_log 51125
FpXQ_matrix_pow 395
FpXQ_minpoly 2695
FpXQ_mul 28309062
FpXQ_norm 2265
FpXQ_order 20
FpXQ_pow 277190
FpXQ_pow_Frobenius 16245
FpXQ_powers 130510
FpXQ_powu 45020
FpXQ_red 1918999
FpXQ_sqr 2032185
FpXQ_sqrt 5225
FpXQ_sqrtn 5530
FpXQ_trace 14700
FpXQ_transmul 85
FpXQ_transmul_init 20
FpXT_red 777669
FpXV_FpX_fromdigits 1640
FpXV_prod 13400
FpXV_red 207575
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 1540
FpX_FpXM_qmul 2
FpX_FpXQV_eval 91050
FpX_FpXQ_eval 121445
FpX_Fp_add 393025
FpX_Fp_add_shallow 0
FpX_Fp_mul 2493018
FpX_Fp_mul_to_monic 31925
FpX_Fp_mulspec 2497008
FpX_Fp_sub 213400
FpX_Fp_sub_shallow 1095
FpX_Frobenius 114455
FpX_add 5747720
FpX_addmulmul 12
FpX_center 470420
FpX_chinese_coprime 700
FpX_deriv 454950
FpX_digits 4030
FpX_disc 20
FpX_div_by_X_x 16625
FpX_divrem 2600724
FpX_divrem_Barrett_noGC 50358
FpX_divrem_Barrettspec 50544
FpX_divrem_basecase 43623866
FpX_dotproduct 400
FpX_eval 268755
FpX_extgcd 259097
FpX_extgcd_basecase 174527
FpX_extgcd_halfgcd 2
FpX_gcd 315170
FpX_gcd_basecase 36060
FpX_gcd_check 75
FpX_get_red 207165
FpX_halfgcd 101
FpX_halfgcd_basecase 14
FpX_halfgcd_i 16
FpX_halfgcd_split 2
FpX_halve 765
FpX_invBarrett 795
FpX_invBarrett_Newton 20
FpX_invBarrett_basecase 759
FpX_is_squarefree 1675
FpX_matFrobenius 245
FpX_mul 32700601
FpX_mulspec 1136190
FpX_mulu 842265
FpX_neg 51158
FpX_normalize 185815
FpX_powu 195105
FpX_recipspec 101168
FpX_red 46834326
FpX_rem 43082475
FpX_rescale 9570
FpX_resultant 4075
FpX_sqr 2095410
FpX_sub 4609549
FpX_subspec 4660093
FpX_valrem 16995
FpXn_mul 75
Fp_FpXQ_log 3970
Fp_FpX_sub 5799
Fp_issquare 64865
Fp_neg_FpX 5
Fp_red_FpX 4715
FqV_inv 0
Fq_ispower 95
Fq_issquare 64760
Fq_log 183725
ZX_lgrenormalizespec 101408
Z_to_FpX 1220
_FpXQ_add 760595
_FpXQ_cmul 852980
_FpXQ_easylog 980
_FpXQ_mul 433160
_FpXQ_one 219920
_FpXQ_pow 15780
_FpXQ_rand 2275
_FpXQ_red 255060
_FpXQ_sqr 1700460
_FpXQ_sub 41110
_FpXQ_zero 2515
_FpX_add 7315
_FpX_divrem 49790
_FpX_mul 50085
_FpX_sqr 40655
bounded_order 3630
deg2pol_shallow 6945
gener_FpXQ 4885
gener_FpXQ_i 1040
gener_FpXQ_local 1025
get_FpXQ_algebra 9685
get_FpXQ_star 1245
get_FpX_algebra 0
get_FpX_degree 1026230
get_FpX_mod 275192
get_FpX_red 45683219
get_FpX_var 981733
matid2_FpXM 2
random_FpX 13340
to_Flx 32383614
to_Flxq 535981

Generated by: LCOV version 1.11