Sha256: 4784f6585558e4ef6b1e88718652e11e025e50ff62561e49fe0f268ab5cd6214
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
require 'pry' require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe SPCore::Gain do before :all do @conversions = [ { :linear => Math::sqrt(2.0), :db => 3.01 }, { :linear => 2.0, :db => 6.02 }, { :linear => 4.0, :db => 12.04 }, ] end describe '.db_to_linear' do it 'should convert decibel (logarithmic) unit to linear' do @conversions.each do |conversion| SPCore::Gain::db_to_linear(conversion[:db]).should be_within(0.01).of(conversion[:linear]) end end it 'should prove to be the inverse of .db_to_linear' do 20.times do x = SPCore::Interpolation.linear(0.0, -SPCore::Gain::MAX_DB_ABS, 1.0, SPCore::Gain::MAX_DB_ABS, rand) y = SPCore::Gain::db_to_linear(x) z = SPCore::Gain::linear_to_db(y) ((z - x).abs / x).should be_within(1e-5).of(0.0) end end end describe '.linear_to_db' do it 'should convert linear unit to decibel (logarithmic)' do @conversions.each do |conversion| SPCore::Gain::linear_to_db(conversion[:linear]).should be_within(0.01).of(conversion[:db]) end end it 'should prove to be the inverse of .db_to_linear' do 20.times do max_gain_linear = SPCore::Gain::db_to_linear(SPCore::Gain::MAX_DB_ABS) min_gain_linear = SPCore::Gain::db_to_linear(-SPCore::Gain::MAX_DB_ABS) x = SPCore::Interpolation.linear(0.0, min_gain_linear, 1.0, max_gain_linear, rand) y = SPCore::Gain::linear_to_db(x) z = SPCore::Gain::db_to_linear(y) ((z - x).abs / x).should be_within(1e-5).of(0.0) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
spcore-0.1.2 | spec/lib/gain_spec.rb |
spcore-0.1.1 | spec/lib/gain_spec.rb |
spcore-0.1.0 | spec/lib/gain_spec.rb |