]> iEval git - audio-libsamplerate.git/blob - t/Audio-LibSampleRate.t
d8ef99ddc5c737eae2f60c38c0c98651a56a043b
[audio-libsamplerate.git] / t / Audio-LibSampleRate.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use constant EPSILON => 0.1;
5
6 use Test::More tests => 7;
7 BEGIN { use_ok('Audio::LibSampleRate') };
8
9 sub isf {
10 my ($xx, $yy, $name) = @_;
11 for (0 .. $#{$xx}) {
12 my ($x, $y) = ($xx->[$_], $yy->[$_]);
13 do { diag "$x != $y"; return fail $name } if abs ($x - $y) > EPSILON;
14 }
15 pass $name;
16 }
17
18 isf [src_simple([1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], 2)], [1.1, 1.1, 1.7, 1.7, 1.9, 1.9, 2.2, 2.2, 3.1, 3.1, 3.8, 3.8], 'src_simple doubling';
19 isf [src_simple([1..10], 1/2, SRC_LINEAR, 1)], [1, 2, 4, 6, 8], 'src_simple halving';
20
21 my @out;
22 my $src = Audio::LibSampleRate->new(SRC_ZERO_ORDER_HOLD, 1);
23 @out = ($src->process([1.. 5], 1/2), $src->process([6..10], 2, 1));
24 isf \@out, [1, 2, 4, 6, 8, 9], 'process, smooth transition';
25
26 $src->reset;
27 @out = $src->process([1..5], 1/2);
28 $src->set_ratio(2);
29 push @out, $src->process([6..10], 2, 1);
30 isf \@out, [1, 2, 4, 6, 6, 7, 7, 8, 8, 9, 9, 10], 'process, step transition';
31
32 is src_get_name(SRC_SINC_FASTEST), 'Fastest Sinc Interpolator', 'src_get_name';
33 like src_get_description(SRC_SINC_FASTEST), qr/band limited sinc interpolation/i, 'src_get_description';
This page took 0.060598 seconds and 5 git commands to generate.