Added typemap-fu for gsl_sort_vector_largest()
[Math-GSL.git] / lib / Math / GSL / Sort / Test.pm
blob73e991c43f6d831703c39a4896914c9b5a305c03
1 package Math::GSL::Sort::Test;
2 use base q{Test::Class};
3 use Test::More;
4 use Math::GSL::Permutation qw/:all/;
5 use Math::GSL::Sort qw/:all/;
6 use Math::GSL::Vector qw/:all/;
7 use Math::GSL qw/:all/;
8 use Math::GSL::Errno qw/:all/;
9 use Data::Dumper;
10 use strict;
12 BEGIN { gsl_set_error_handler_off(); }
14 sub make_fixture : Test(setup) {
17 sub teardown : Test(teardown) {
20 sub GSL_SORT_VECTOR : Tests {
21 my $vec = Math::GSL::Vector->new([6,4,2,3,1,5]);
22 gsl_sort_vector($vec->raw);
23 ok_similar( [ $vec->as_list ], [ 1 .. 6 ] );
26 sub GSL_SORT_VECTOR_LARGEST : Tests {
27 local $TODO = 'gsl_sort_vector_largest';
28 my $vec = Math::GSL::Vector->new([reverse 0..50]);
29 my $largest10 = [1..10];
30 my ($status, $stuff) = gsl_sort_vector_largest($largest10, 10, $vec->raw);
31 ok_status( $status, $GSL_SUCCESS);
32 ok_similar( $stuff, [ reverse (41 .. 50) ] );
34 sub GSL_SORT_VECTOR_INDEX : Tests {
35 my $vec = Math::GSL::Vector->new([4,2,3,1,5]);
36 my $p = Math::GSL::Permutation->new(5);
37 ok_status(gsl_sort_vector_index($p->raw, $vec->raw),$GSL_SUCCESS);
38 # indices in ascending order
39 ok_similar( [ $p->as_list ], [ 3, 1, 2, 0 , 4] );
43 sub GSL_SORT : Tests {
44 my $x = [ 2**15, 1, 42.7, -17, 6900, 3e-10 , 4242, 0e0];
45 my $sorted = gsl_sort($x, 1, $#$x+1 );
46 ok_similar ( $sorted , [ -17, 0e0, 3e-10, 1, 42.7, 4242, 6900, 2**15 ], 'gsl_sort' );
49 42;