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))