Sha256: 0a19bed8664e7d8705bb5b5e1f4b514c9a340f9c9dc1e26079839e6d86160cf6

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

# -*- coding: utf-8 -*-


require_relative 'helper'


class TestSound < Test::Unit::TestCase

  RS = RubySketch
  B  = Beeps

  PATH = 'test.wav'

  def sound()
    RS::Sound.load PATH
  end

  def setup()
    B::Sound.new(B::Oscillator.new >> B::Gain.new(gain: 0), 0.1).save PATH
  end

  def teardown()
    B::SoundPlayer.stop_all
    File.delete PATH if File.exist?(PATH)
  end

  def test_play()
    s = sound
    assert_equal [false, false, true],  [s.playing?, s.paused?, s.stopped?]
    s.play
    assert_equal [true,  false, false], [s.playing?, s.paused?, s.stopped?]
  end

  def test_pause()
    s = sound
    s.play
    assert_equal [true,  false, false], [s.playing?, s.paused?, s.stopped?]
    s.pause
    assert_equal [false, true,  false], [s.playing?, s.paused?, s.stopped?]
  end

  def test_stop()
    s = sound
    s.play
    assert_equal [true,  false, false], [s.playing?, s.paused?, s.stopped?]
    s.stop
    assert_equal [false, false, true],  [s.playing?, s.paused?, s.stopped?]
  end

  def test_play_end_then_stop()
    s = sound
    s.play
    assert_equal [true,  false, false], [s.playing?, s.paused?, s.stopped?]
    sleep 0.2
    assert_equal [false, false, true],  [s.playing?, s.paused?, s.stopped?]
  end

  def test_play_after_pause()
    s = sound
    s.play
    s.pause
    assert_equal [false, true,  false], [s.playing?, s.paused?, s.stopped?]
    s.play
    assert_equal [true,  false, false], [s.playing?, s.paused?, s.stopped?]
  end

  def test_stop_after_pause()
    s = sound
    s.play
    s.pause
    assert_equal [false, true,  false], [s.playing?, s.paused?, s.stopped?]
    s.stop
    assert_equal [false, false, true],  [s.playing?, s.paused?, s.stopped?]
  end

  def test_save_load()
    s = sound

    File.delete PATH
    assert_false File.exist? PATH

    s.save PATH
    assert_true  File.exist? PATH

    assert_nothing_raised {RS::Sound.load(PATH).play}
  end

end# TestSound

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubysketch-0.5.4 test/test_sound.rb