Sha256: a60f472c4eca86b752b8d0a6ffc57a0121a4c8799056cdb7ddde2ba786d2db83

Contents?: true

Size: 1.9 KB

Versions: 1

Compression:

Stored size: 1.9 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()
    s = sound

    File.delete PATH
    assert_false File.exist? PATH

    s.save PATH
    assert_true  File.exist? PATH
  end

  def test_load()
    assert_nothing_raised {sound.play}
  end

end# TestSound

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubysketch-0.5.3 test/test_sound.rb