Sha256: cd7a66671b1f713f442e341359eda21817ec840fb7934af60c8935ce1f976a70

Contents?: true

Size: 978 Bytes

Versions: 34

Compression:

Stored size: 978 Bytes

Contents

# frozen_string_literal: true

require_relative 'helper'

class ThrottlerTest < MiniTest::Test
  def test_throttler_with_rate
    t = Polyphony::Throttler.new(10)
    buffer = []
    t0 = Time.now
    f = spin { loop { t.process { buffer << 1 } } }
    sleep 0.2
    f.stop
    assert_in_range 1..3, buffer.size
  ensure
    t.stop
  end

  def test_throttler_with_hash_of_rate
    t = Polyphony::Throttler.new(rate: 20)
    buffer = []
    f = spin do
      loop { t.process { buffer << 1 } }
    end
    sleep 0.25
    f.stop
    assert_in_range 2..6, buffer.size
  ensure
    t.stop
  end

  def test_throttler_with_hash_of_interval
    t = Polyphony::Throttler.new(interval: 0.01)
    buffer = []
    f = spin { loop { t.process { buffer << 1 } } }
    sleep 0.02
    f.stop
    assert_in_range 2..3, buffer.size
  ensure
    t.stop
  end

  def test_throttler_with_invalid_argument
    assert_raises RuntimeError do
      Polyphony::Throttler.new(:foobar)
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
polyphony-0.66 test/test_throttler.rb
polyphony-0.65 test/test_throttler.rb
polyphony-0.64 test/test_throttler.rb
polyphony-0.63 test/test_throttler.rb
polyphony-0.62 test/test_throttler.rb
polyphony-0.61 test/test_throttler.rb
polyphony-0.60 test/test_throttler.rb
polyphony-0.59.1 test/test_throttler.rb
polyphony-0.59 test/test_throttler.rb
polyphony-0.58 test/test_throttler.rb
polyphony-0.57.0 test/test_throttler.rb
polyphony-0.56.0 test/test_throttler.rb
polyphony-0.55.0 test/test_throttler.rb
polyphony-0.54.0 test/test_throttler.rb
polyphony-0.53.2 test/test_throttler.rb
polyphony-0.53.1 test/test_throttler.rb
polyphony-0.53.0 test/test_throttler.rb
polyphony-0.52.0 test/test_throttler.rb
polyphony-0.51.0 test/test_throttler.rb
polyphony-0.50.1 test/test_throttler.rb