Sha256: 7e7d5d16214e9a51ee94f9ffb764dd0b7788f52fb82a892a8f045e0afc302842

Contents?: true

Size: 1.92 KB

Versions: 11

Compression:

Stored size: 1.92 KB

Contents

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

describe Parsing::DurationParser do
  dur_parser = Parsing::DurationParser.new
  before :all do
    @valid = {
      :numbers => [1,5,50,3999,01,0010,0000005050],
    }
    
    @invalid = {
      :numbers => [0,00],
    }    
  end
  
  context 'valid (non-zero) numerator and denominator' do
    ["n","n/","n/d","/d"].each do |expr|
      it "should parse durations of the form #{expr}" do
        @valid[:numbers].each do |n|
          @valid[:numbers].each do |d|
            str = expr.gsub('n',"#{n}")
            str = str.gsub('d',"#{d}")
            dur_parser.parse(str).should_not be nil
          end
        end
      end
    end
  end

  context 'invalid (zero) numerator and valid denominator' do
    ["n","n/","n/d"].each do |expr|
      it "should parse durations of the form #{expr}" do
        @invalid[:numbers].each do |n|
          @valid[:numbers].each do |d|
            str = expr.gsub('n',"#{n}")
            str = str.gsub('d',"#{d}")
            dur_parser.parse(str).should be nil
          end
        end
      end
    end
  end
    
  context 'valid numerator and invalid (zero) denominator' do
    ["n/d","/d"].each do |expr|
      it "should parse durations of the form #{expr}" do
        @valid[:numbers].each do |n|
          @invalid[:numbers].each do |d|
            str = expr.gsub('n',"#{n}")
            str = str.gsub('d',"#{d}")
            dur_parser.parse(str).should be nil
          end
        end
      end
    end
  end
  
  context 'invalid numerator and invalid denominator' do
    ["n","n/","n/d","/d"].each do |expr|
      it "should parse durations of the form #{expr}" do
        @invalid[:numbers].each do |n|
          @invalid[:numbers].each do |d|
            str = expr.gsub('n',"#{n}")
            str = str.gsub('d',"#{d}")
            dur_parser.parse(str).should be nil
          end
        end
      end
    end
  end  
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
music-transcription-0.21.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.20.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.19.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.17.1 spec/parsing/duration_parsing_spec.rb
music-transcription-0.17.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.16.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.15.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.14.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.13.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.11.0 spec/parsing/duration_parsing_spec.rb
music-transcription-0.10.0 spec/parsing/duration_parsing_spec.rb