whisper.cpp/bindings/ruby/test/test_parakeet_params.rb

79 lines
1.7 KiB
Ruby

require_relative "helper"
require "etc"
class TestParakeetParams < TestBase
PARAM_NAMES = [
:n_threads,
:offset_ms,
:duration_ms,
:no_context,
:audio_ctx
]
def setup
@params = Parakeet::Params.new
end
def test_new
assert_instance_of Parakeet::Params, @params
end
def test_n_threads
assert_equal [4, Etc.nprocessors].min, @params.n_threads
@params.n_threads = 1
assert_equal 1, @params.n_threads
end
def test_offset_ms
assert_equal 0, @params.offset_ms
@params.offset_ms = 10_000
assert_equal 10_000, @params.offset_ms
end
def test_duration_ms
assert_equal 0, @params.duration_ms
@params.duration_ms = 60_000
assert_equal 60_000, @params.duration_ms
end
def test_no_context
assert_equal true, @params.no_context
@params.no_context = false
assert_equal false, @params.no_context
end
def test_audio_ctx
assert_equal 0, @params.audio_ctx
@params.audio_ctx = 1
assert_equal 1, @params.audio_ctx
end
def test_new_with_kw_args
params = Parakeet::Params.new(n_threads: 1)
assert_equal 1, params.n_threads
assert_equal 0, params.offset_ms
end
data(PARAM_NAMES.collect {|param| [param, param]}.to_h)
def test_new_with_kw_args_default_values(param)
default_value = @params.send(param)
value = case [param, default_value]
in [*, true | false]
!default_value
in [*, Integer]
default_value + 1
end
params = Parakeet::Params.new(param => value)
assert_equal value, params.send(param)
PARAM_NAMES.reject {|name| name == param}.each do |name|
assert_equal @params.send(name), params.send(name)
end
end
end