Sha256: c42d65a3b7e7db10915ebcefe4e872a27fd9d8918056068941e9cf5a99c3fb11

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')

describe Score do
  before :each do
    @parts = { "piano (LH)" => Samples::SAMPLE_PART }
    @program = Program.new :segments => [0...0.75, 0...0.75]
  end
  
  describe '.new' do
    context "no args given" do
      let(:score) { Score.new }
      subject { score }
      its(:program) { should eq(Program.new) }
      its(:parts) { should be_empty }
    end
    
    context 'args given' do
      it "should assign parts given during construction" do
        score = Score.new :program => @program, :parts => @parts
        score.parts.should eq(@parts)
      end
      
      it "should assign program given during construction" do
        score = Score.new :program => @program
        score.program.should eq(@program)
      end      
    end
  end
end

describe TempoScore do
  before :each do
    @parts = { "piano (LH)" => Samples::SAMPLE_PART }
    @program = Program.new :segments => [0...0.75, 0...0.75]
    @tempo_profile = Profile.new(
      :start_value => tempo(120),
      :value_changes => {
        0.5 => linear_change(tempo(60), 0.25)
      }
    )
  end
  
  describe '.new' do
    it "should assign tempo profile given during construction" do
      score = TempoScore.new :tempo_profile => @tempo_profile
      score.tempo_profile.should eq(@tempo_profile)
    end
    
    it "should assign part and program given during construction" do
      score = TempoScore.new :tempo_profile => @tempo_profile, :parts => @parts, :program => @program
      score.parts.should eq(@parts)
      score.program.should eq(@program)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
music-transcription-0.3.0 spec/score_spec.rb