|
1 | 1 | require_relative "helper" |
2 | 2 |
|
3 | 3 | 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 | + |
4 | 37 | def setup |
5 | 38 | @params = Whisper::Params.new |
6 | 39 | end |
@@ -157,4 +190,55 @@ def test_no_speech_thold |
157 | 190 | @params.no_speech_thold = 0.2 |
158 | 191 | assert_in_delta 0.2, @params.no_speech_thold |
159 | 192 | 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 |
160 | 244 | end |
0 commit comments