audio-playback 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,167 @@
1
+ require "helper"
2
+
3
+ class AudioPlayback::PositionTest < Minitest::Test
4
+
5
+ context "Position" do
6
+
7
+ context "#initialize" do
8
+
9
+ context "invalid" do
10
+
11
+ context "invalid number" do
12
+
13
+ should "raise exception if min above 60" do
14
+ assert_raises AudioPlayback::Position::InvalidTime do
15
+ AudioPlayback::Position.new("123:78:34.45")
16
+ end
17
+ end
18
+
19
+ should "raise exception if seconds above 60" do
20
+ assert_raises AudioPlayback::Position::InvalidTime do
21
+ AudioPlayback::Position.new("123:45:89.45")
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ context "other characters" do
28
+
29
+ should "raise exception" do
30
+ assert_raises AudioPlayback::Position::InvalidTime do
31
+ AudioPlayback::Position.new("kdjfdkdj")
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ context "valid" do
40
+
41
+ context "has seconds integer" do
42
+
43
+ should "populate ss" do
44
+ position = AudioPlayback::Position.new("12")
45
+ assert_equal 12.0, position.to_seconds
46
+ end
47
+
48
+ should "populate m:ss" do
49
+ position = AudioPlayback::Position.new("3:45")
50
+ assert_equal 225.0, position.to_seconds
51
+ end
52
+
53
+ should "populate mm:ss" do
54
+ position = AudioPlayback::Position.new("06:07")
55
+ assert_equal 367.0, position.to_seconds
56
+ end
57
+
58
+ should "populate h:mm:ss" do
59
+ position = AudioPlayback::Position.new("8:09:10")
60
+ assert_equal 29350.0, position.to_seconds
61
+ end
62
+
63
+ should "populate hh:mm:ss" do
64
+ position = AudioPlayback::Position.new("11:12:13")
65
+ assert_equal 40333.0, position.to_seconds
66
+ end
67
+
68
+ end
69
+
70
+ context "has seconds float" do
71
+
72
+ context "one digit" do
73
+
74
+ should "populate ss.s" do
75
+ position = AudioPlayback::Position.new("01.2")
76
+ assert_equal 1.2, position.to_seconds
77
+ end
78
+
79
+ should "populate m:ss.s" do
80
+ position = AudioPlayback::Position.new("3:45.6")
81
+ assert_equal 225.6, position.to_seconds
82
+ end
83
+
84
+ should "populate mm:ss.s" do
85
+ position = AudioPlayback::Position.new("07:59.1")
86
+ assert_equal 479.1, position.to_seconds
87
+ end
88
+
89
+ should "populate h:mm:ss.s" do
90
+ position = AudioPlayback::Position.new("1:23:45.6")
91
+ assert_equal 5025.6, position.to_seconds
92
+ end
93
+
94
+ should "populate hh:mm:ss.s" do
95
+ position = AudioPlayback::Position.new("12:34:56.7")
96
+ assert_equal 45296.7, position.to_seconds
97
+ end
98
+
99
+ end
100
+
101
+ context "two digit" do
102
+
103
+ should "populate ss.ss" do
104
+ position = AudioPlayback::Position.new("01.23")
105
+ assert_equal 1.23, position.to_seconds
106
+ end
107
+
108
+ should "populate m:ss.ss" do
109
+ position = AudioPlayback::Position.new("3:45.76")
110
+ assert_equal 225.76, position.to_seconds
111
+ end
112
+
113
+ should "populate mm:ss.ss" do
114
+ position = AudioPlayback::Position.new("07:59.12")
115
+ assert_equal 479.12, position.to_seconds
116
+ end
117
+
118
+ should "populate h:mm:ss.ss" do
119
+ position = AudioPlayback::Position.new("1:23:45.67")
120
+ assert_equal 5025.67, position.to_seconds
121
+ end
122
+
123
+ should "populate hh:mm:ss.ss" do
124
+ position = AudioPlayback::Position.new("12:34:56.78")
125
+ assert_equal 45296.78, position.to_seconds
126
+ end
127
+
128
+ end
129
+
130
+ context "three+ digits" do
131
+
132
+ should "populate ss.ss" do
133
+ position = AudioPlayback::Position.new("01.234")
134
+ assert_equal 1.234, position.to_seconds
135
+ end
136
+
137
+ should "populate m:ss.ss" do
138
+ position = AudioPlayback::Position.new("3:45.678")
139
+ assert_equal 225.678, position.to_seconds
140
+ end
141
+
142
+ should "populate mm:ss.ss" do
143
+ position = AudioPlayback::Position.new("07:39.123")
144
+ assert_equal 459.123, position.to_seconds
145
+ end
146
+
147
+ should "populate h:mm:ss.ss" do
148
+ position = AudioPlayback::Position.new("1:23:45.678")
149
+ assert_equal 5025.678, position.to_seconds
150
+ end
151
+
152
+ should "populate hh:mm:ss.ss" do
153
+ position = AudioPlayback::Position.new("12:34:56.789")
154
+ assert_equal 45296.789, position.to_seconds
155
+ end
156
+
157
+ end
158
+
159
+ end
160
+
161
+ end
162
+
163
+ end
164
+
165
+ end
166
+
167
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audio-playback
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-22 00:00:00.000000000 Z
11
+ date: 2017-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -172,6 +172,7 @@ files:
172
172
  - lib/audio-playback/playback/frame_set.rb
173
173
  - lib/audio-playback/playback/mixer.rb
174
174
  - lib/audio-playback/playback/stream_data.rb
175
+ - lib/audio-playback/position.rb
175
176
  - lib/audio-playback/sound.rb
176
177
  - test/device/output_test.rb
177
178
  - test/device/stream_test.rb
@@ -188,10 +189,11 @@ files:
188
189
  - test/playback/mixer_test.rb
189
190
  - test/playback/stream_data_test.rb
190
191
  - test/playback_test.rb
192
+ - test/position_test.rb
191
193
  - test/sound_test.rb
192
194
  homepage: http://github.com/arirusso/audio-playback
193
195
  licenses:
194
- - Apache 2.0
196
+ - Apache-2.0
195
197
  metadata: {}
196
198
  post_install_message:
197
199
  rdoc_options: []
@@ -209,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
211
  version: 1.3.6
210
212
  requirements: []
211
213
  rubyforge_project: audio-playback
212
- rubygems_version: 2.4.6
214
+ rubygems_version: 2.6.8
213
215
  signing_key:
214
216
  specification_version: 4
215
217
  summary: Command Line/Ruby Audio File Player