1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Math::Prime::Util;
5
6use Test::More  tests => 1;
7
8my @functions =  qw(
9      prime_get_config prime_set_config
10      prime_precalc prime_memfree
11      is_prime is_prob_prime is_provable_prime is_provable_prime_with_cert
12      prime_certificate verify_prime
13      is_pseudoprime is_euler_pseudoprime is_strong_pseudoprime
14      is_euler_plumb_pseudoprime
15      is_lucas_pseudoprime
16      is_strong_lucas_pseudoprime
17      is_extra_strong_lucas_pseudoprime
18      is_almost_extra_strong_lucas_pseudoprime
19      is_frobenius_pseudoprime
20      is_frobenius_underwood_pseudoprime is_frobenius_khashin_pseudoprime
21      is_perrin_pseudoprime is_catalan_pseudoprime
22      is_aks_prime is_bpsw_prime is_ramanujan_prime is_mersenne_prime
23      is_power is_prime_power is_pillai is_semiprime is_square is_polygonal
24      is_square_free is_primitive_root is_carmichael is_quasi_carmichael
25      is_fundamental is_totient
26      sqrtint rootint logint
27      miller_rabin_random
28      lucas_sequence lucasu lucasv
29      primes twin_primes ramanujan_primes sieve_prime_cluster sieve_range
30      forprimes forcomposites foroddcomposites forsemiprimes fordivisors
31      forpart forcomp forcomb forperm forderange formultiperm forsetproduct
32      forfactored forsquarefree
33      lastfor
34      numtoperm permtonum randperm shuffle
35      prime_iterator prime_iterator_object
36      next_prime  prev_prime
37      prime_count semiprime_count
38      prime_count_lower prime_count_upper prime_count_approx
39      nth_prime nth_prime_lower nth_prime_upper nth_prime_approx inverse_li
40      twin_prime_count twin_prime_count_approx
41      nth_twin_prime nth_twin_prime_approx
42      ramanujan_prime_count ramanujan_prime_count_approx
43      ramanujan_prime_count_lower ramanujan_prime_count_upper
44      nth_ramanujan_prime nth_ramanujan_prime_approx
45      nth_ramanujan_prime_lower nth_ramanujan_prime_upper
46      sum_primes print_primes
47      random_prime random_ndigit_prime random_nbit_prime random_strong_prime
48      random_proven_prime random_proven_prime_with_cert
49      random_maurer_prime random_maurer_prime_with_cert
50      random_shawe_taylor_prime random_shawe_taylor_prime_with_cert
51      random_semiprime random_unrestricted_semiprime
52      random_factored_integer
53      primorial pn_primorial consecutive_integer_lcm gcdext chinese
54      gcd lcm factor factor_exp divisors valuation hammingweight
55      todigits fromdigits todigitstring sumdigits
56      invmod sqrtmod addmod mulmod divmod powmod
57      vecsum vecmin vecmax vecprod vecreduce vecextract
58      vecany vecall vecnotall vecnone vecfirst vecfirstidx
59      moebius mertens euler_phi jordan_totient exp_mangoldt liouville
60      partitions bernfrac bernreal harmfrac harmreal
61      chebyshev_theta chebyshev_psi
62      divisor_sum carmichael_lambda kronecker hclassno inverse_totient
63      ramanujan_tau ramanujan_sum
64      binomial stirling znorder znprimroot znlog legendre_phi
65      factorial factorialmod
66      ExponentialIntegral LogarithmicIntegral RiemannZeta RiemannR LambertW Pi
67      irand irand64 drand urandomb urandomm csrand random_bytes entropy_bytes
68);
69can_ok( 'Math::Prime::Util', @functions);
70