1 package Math
::GSL
::QRNG
::Test
;
2 use Math
::GSL
::Test qw
/:all/;
3 use base
q{Test::Class};
5 use Math
::GSL
::QRNG qw
/:all/;
6 use Math
::GSL qw
/:all/;
8 use Math
::GSL
::Errno qw
/:all/;
11 sub make_fixture
: Test
(setup
) {
13 $self->{sobol
} = gsl_qrng_alloc
($gsl_qrng_sobol, 2);
16 sub teardown
: Test
(teardown
) {
18 gsl_qrng_free
($self->{sobol
});
21 sub GSL_QRNG_ALLOC
: Tests
{
22 my $qrng = gsl_qrng_alloc
($gsl_qrng_sobol, 2);
23 isa_ok
( $qrng, 'Math::GSL::QRNG');
26 sub GSL_QRNG_STATE_SIZE
: Tests
{
28 my $state = gsl_qrng_state
($self->{sobol
});
29 my $size = gsl_qrng_size
($self->{sobol
});
30 ok
( defined $state && $state >0 , 'gsl_qrng_state' );
31 ok
( defined $size && $size > 0, 'gsl_qrng_size' );
34 sub GSL_QRNG_CLONE
: Tests
{
36 my $droid = gsl_qrng_clone
($self->{sobol
});
37 isa_ok
($droid, 'Math::GSL::QRNG' );
40 sub GSL_QRNG_NAME
: Tests
{
42 my $name = gsl_qrng_name
($self->{sobol
});
43 ok
($name eq 'sobol', 'gsl_qrng_name' );
46 sub GSL_QRNG_GET
: Tests
{
48 my ($status, @values)= gsl_qrng_get
($self->{sobol
});
50 is
($status, $GSL_SUCCESS);
51 ok_similar
( [ 0.5, 0.5 ], \
@values, 'gsl_qrng_get returns multiple values' );
52 ($status, @values)= gsl_qrng_get
($self->{sobol
});
53 ok_similar
( [ 0.75, 0.25 ], \
@values, 'gsl_qrng_get returns correct values for sobol' );