]> iEval git - audio-opusfile.git/blame - t/Audio-Opusfile.t
Perlcritic compliance + bump version and update Changes
[audio-opusfile.git] / t / Audio-Opusfile.t
CommitLineData
a3f1cbda
MG
1#!/usr/bin/perl
2use strict;
3use warnings;
4
318673cc 5use Test::More tests => 29;
a3f1cbda
MG
6BEGIN { use_ok('Audio::Opusfile') };
7
8my $fail = 0;
9foreach my $constname (qw(
10 OPUS_CHANNEL_COUNT_MAX OP_ABSOLUTE_GAIN OP_DEC_FORMAT_FLOAT
11 OP_DEC_FORMAT_SHORT OP_DEC_USE_DEFAULT OP_EBADHEADER OP_EBADLINK
12 OP_EBADPACKET OP_EBADTIMESTAMP OP_EFAULT OP_EIMPL OP_EINVAL OP_ENOSEEK
13 OP_ENOTAUDIO OP_ENOTFORMAT OP_EOF OP_EREAD OP_EVERSION OP_FALSE
14 OP_GET_SERVER_INFO_REQUEST OP_HEADER_GAIN OP_HOLE
15 OP_HTTP_PROXY_HOST_REQUEST OP_HTTP_PROXY_PASS_REQUEST
16 OP_HTTP_PROXY_PORT_REQUEST OP_HTTP_PROXY_USER_REQUEST OP_PIC_FORMAT_GIF
17 OP_PIC_FORMAT_JPEG OP_PIC_FORMAT_PNG OP_PIC_FORMAT_UNKNOWN
18 OP_PIC_FORMAT_URL OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST OP_TRACK_GAIN)) {
19 next if (eval "my \$a = $constname; 1");
20 if ($@ =~ /^Your vendor has not defined Audio::Opusfile macro $constname/) {
21 print "# pass: $@";
22 } else {
23 print "# fail: $@";
24 $fail = 1;
25 }
26
27}
28
29ok( $fail == 0 , 'Constants' );
30
31my $of = Audio::Opusfile->new_from_file('empty.opus');
5fbea9a2
MG
32ok $of->seekable, 'seekable';
33is $of->link_count, 1, 'link_count';
34is $of->serialno(0), 1745145935, 'serialno, arg=0';
35is $of->serialno(200), 1745145935, 'serialno, arg=200';
36is $of->serialno, 1745145935, 'serialno, no arg';
b9bd6a0d
MG
37
38my $head = $of->head;
39is $head->version, 1, 'head->version';
40is $head->channel_count, 2, 'head->channel_count';
41is $head->pre_skip, 356, 'head->pre_skip';
42is $head->input_sample_rate, 44100, 'head->input_sample_rate';
43is $head->output_gain, 0, 'head->output_gain';
44is $head->mapping_family, 0, 'head->mapping_family';
45is $head->stream_count, 1, 'head->stream_count';
46is $head->coupled_count, 1, 'head->coupled_count';
47is $head->mapping(0), 0, 'head->mapping(0)';
48is $head->mapping(1), 1, 'head->mapping(1)';
49eval { $head->mapping(1000) };
50isn::t $@, '', 'head->mapping(1000) dies';
51
a3f1cbda
MG
52my $tags = $of->tags;
53is $tags->query_count('TITLE'), 1, 'query_count';
54is $tags->query('TITLE'), 'Cellule', 'query';
55is_deeply [$tags->query_all('TITLE')], ['Cellule'], 'query_all';
5fbea9a2
MG
56
57open my $fh, '<', 'empty.opus';
58read $fh, my $buf, 100;
59ok Audio::Opusfile::test($buf), 'test';
60
61seek $fh, 0, 0;
62read $fh, $buf, 20000;
63$of = Audio::Opusfile->new_from_memory($buf);
64is $of->tags->query('TITLE'), 'Cellule', 'new_from_memory + query';
318673cc
MG
65
66is $of->pcm_tell, 0, '->pcm_tell is 0 at the beginning';
67
68$of->set_dither_enabled(0);
69my ($li, @samples) = $of->read;
70is $li, 0, '->read, correct link';
71is scalar @samples, 1208, '->read, got correct number of samples';
72
73isn::t $of->pcm_tell, 0, '->pcm_tell is not 0 after read';
74$of->raw_seek(0);
75is $of->pcm_tell, 0, '->pcm_tell is 0 right after raw_seek';
3656d943 76 @samples = $of->read_float_stereo;
318673cc 77is scalar @samples, 1208, '->read_float_stereo, got correct number of samples';
This page took 0.035696 seconds and 4 git commands to generate.