spec/meter_spec.rb in music-transcription-0.7.1 vs spec/meter_spec.rb in music-transcription-0.7.2
- old
+ new
@@ -45,6 +45,35 @@
it 'should produce YAML that can be loaded' do
m = Meter.new(4,"1/4".to_r)
YAML.load(m.to_yaml).should eq m
end
end
+
+ describe '#valid?' do
+ {
+ '4/4 meter' => [4,'1/4'.to_r],
+ '2/4 meter' => [2,'1/4'.to_r],
+ '3/4 meter' => [2,'1/4'.to_r],
+ '6/8 meter' => [6,'1/8'.to_r],
+ '12/8 meter' => [12,'1/8'.to_r],
+ }.each do |context_str,args|
+ context context_str do
+ it 'should return true' do
+ Score.new(*args).should be_valid
+ end
+ end
+ end
+
+ {
+ 'non-integer positive beats per measure' => [4.0,"1/4".to_r],
+ 'integer negative beats per measure' => [-1,"1/4".to_r],
+ 'zero beat duration' => [4,0.to_r],
+ 'negative beat duration' => [4,-1.to_r],
+ }.each do |context_str,args|
+ context context_str do
+ it 'should return false' do
+ Score.new(*args).should be_invalid
+ end
+ end
+ end
+ end
end