spec/profile_spec.rb in music-transcription-0.5.5 vs spec/profile_spec.rb in music-transcription-0.5.6

- old
+ new

@@ -97,9 +97,24 @@ p.shift!(-1.0) p.value_changes[5.0].value.should eq(0.1) p.value_changes[7.5].value.should eq(0.2) end end + + describe '#stretch!' do + it 'should multiply change offsets by ratio' do + p = Profile.new(0.0, 5.0 => Change::Immediate.new(0.1), 7.5 => Change::Immediate.new(0.2)) + p.stretch!(1) + p.value_changes[5.0].value.should eq(0.1) + p.value_changes[7.5].value.should eq(0.2) + p.stretch!("3/2".to_r) + p.value_changes[7.5].value.should eq(0.1) + p.value_changes[11.25].value.should eq(0.2) + p.stretch!("2/3".to_r) + p.value_changes[5.0].value.should eq(0.1) + p.value_changes[7.5].value.should eq(0.2) + end + end describe '#append!' do before :each do @p1 = Profile.new(0.0, 5.0 => Change::Immediate.new(0.1), 7.5 => Change::Immediate.new(0.2)) @p2 = Profile.new(0.2, 1.0 => Change::Immediate.new(0.0), 2.0 => Change::Gradual.new(100.0))