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