spec/ms/msrun_spec.rb in ms-msrun-0.2.4 vs spec/ms/msrun_spec.rb in ms-msrun-0.3.0

- old
+ new

@@ -1,14 +1,13 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb') - require 'ms/msrun' module MsrunSpec before_all = lambda do |file| - nums = (1..20).to_a # define scan numbers key = YAML.load_file(file + '.key.yml') + nums = (1..key['scan_count'][0]).to_a # define scan numbers [key, nums] end shared 'an msrun object' do @@ -18,11 +17,11 @@ #puts "K: #{k} Vexp: #{v} Vact: #{ms.send(k.to_sym)}" ms.send(k.to_sym).is v end end end - + it 'can access random scans' do Ms::Msrun.open(@file) do |ms| scan = ms.scan(20) hash_match(@key['scans'][20], scan) end @@ -41,17 +40,23 @@ num_required_scans.is 0 end it 'can read scans of a certain ms_level' do nums = [1,5,9,13,17] + nums = [4,10,16] if @file.include? "mzML" + temp = nums.dup + Ms::Msrun.open(@file) do |ms| ms.each(:ms_level => 1) do |scan| - scan.num.is nums.shift + break if scan.num > 20 + scan.num.is temp.shift end end - nums = [2,3,4,6,7,8,10,11,12,14,15,16,18,19,20] + + nums = (1..20).to_a - nums Ms::Msrun.foreach(@file, :ms_level => 2) do |scan| + break if scan.num > 20 scan.num.is nums.shift end end it 'can avoid reading spectra' do @@ -132,8 +137,13 @@ Ms::Msrun.open(newname) do |ms| ms.start_and_end_mz.is([300.0, 1500.0]) end File.unlink(newname) if File.exist?(newname) end - + end + + describe 'reading an mzML file' do + @file = TESTFILES + '/J/test.mzML' + (@key, @nums) = before_all.call(@file) + behaves_like 'an msrun object' end end