Skip to content

Commit 2b2dd5e

Browse files
committed
Add test for Whisper::Params.new with keyword arguments
1 parent efa18bb commit 2b2dd5e

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

bindings/ruby/tests/test_params.rb

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,39 @@
11
require_relative "helper"
22

33
class TestParams < TestBase
4+
DEFAULT_VALUES = {
5+
language: "en",
6+
translate: false,
7+
no_context: true,
8+
single_segment: false,
9+
print_special: false,
10+
print_progress: true,
11+
print_realtime: false,
12+
print_timestamps: true,
13+
suppress_blank: true,
14+
suppress_nst: false,
15+
token_timestamps: false,
16+
split_on_word: false,
17+
initial_prompt: nil,
18+
diarize: false,
19+
offset: 0,
20+
duration: 0,
21+
max_text_tokens: 16384,
22+
temperature: 0.0,
23+
max_initial_ts: 1.0,
24+
length_penalty: -1.0,
25+
temperature_inc: 0.2,
26+
entropy_thold: 2.4,
27+
logprob_thold: -1.0,
28+
no_speech_thold: 0.6,
29+
new_segment_callback: nil,
30+
new_segment_callback_user_data: nil,
31+
progress_callback: nil,
32+
progress_callback_user_data: nil,
33+
abort_callback: nil,
34+
abort_callback_user_data: nil
35+
}
36+
437
def setup
538
@params = Whisper::Params.new
639
end
@@ -157,4 +190,55 @@ def test_no_speech_thold
157190
@params.no_speech_thold = 0.2
158191
assert_in_delta 0.2, @params.no_speech_thold
159192
end
193+
194+
def test_new_with_kw_args
195+
params = Whisper::Params.new(language: "es")
196+
assert_equal "es", params.language
197+
assert_equal 1.0, params.max_initial_ts
198+
end
199+
200+
def test_new_with_kw_args_non_existent
201+
assert_raise ArgumentError do
202+
Whisper::Params.new(non_existent: "value")
203+
end
204+
end
205+
206+
def test_new_with_kw_args_wrong_type
207+
assert_raise TypeError do
208+
Whisper::Params.new(language: 3)
209+
end
210+
end
211+
212+
data(DEFAULT_VALUES.collect {|param, value| [param, [param, value]]}.to_h)
213+
def test_new_with_kw_args_default_values(data)
214+
param, default_value = data
215+
value = case [param, default_value]
216+
in [*, true | false]
217+
!default_value
218+
in [*, Integer | Float]
219+
default_value + 1
220+
in [:language, *]
221+
"es"
222+
in [:initial_prompt, *]
223+
"Initial prompt"
224+
in [/_callback\Z/, *]
225+
proc {}
226+
in [/_user_data\Z/, *]
227+
Object.new
228+
end
229+
params = Whisper::Params.new(param => value)
230+
if Float === value
231+
assert_in_delta value, params.send(param)
232+
else
233+
assert_equal value, params.send(param)
234+
end
235+
236+
DEFAULT_VALUES.except(param).each do |key, default_value|
237+
if Float === default_value
238+
assert_in_delta default_value, params.send(key)
239+
else
240+
assert_equal default_value, params.send(key)
241+
end
242+
end
243+
end
160244
end

0 commit comments

Comments
 (0)