File Coverage

blib/lib/Finnigan/ScanIndexEntry.pm
Criterion Covered Total %
statement 27 28 96.4
branch 1 2 50.0
condition n/a
subroutine 18 18 100.0
pod 14 14 100.0
total 60 62 96.7


line stmt bran cond sub pod time code
1             package Finnigan::ScanIndexEntry;
2              
3 2     2   11 use strict;
  2         4  
  2         76  
4 2     2   11 use warnings FATAL => qw( all );
  2         5  
  2         99  
5             our $VERSION = 0.0206;
6              
7 2     2   8 use Finnigan;
  2         5  
  2         40  
8 2     2   10 use base 'Finnigan::Decoder';
  2         4  
  2         1249  
9              
10             my $fields = [
11             "offset" => ['V', 'UInt32'],
12             "index" => ['V', 'UInt32'],
13             "scan event" => ['v', 'UInt16'],
14             "scan segment" => ['v', 'UInt16'],
15             "next" => ['V', 'UInt32'],
16             "unknown long" => ['V', 'UInt32'],
17             "data size" => ['V', 'UInt32'],
18             "start time" => ['d<', 'Float64'],
19             "total current" => ['d<', 'Float64'],
20             "base intensity" => ['d<', 'Float64'],
21             "base mz" => ['d<', 'Float64'],
22             "low mz" => ['d<', 'Float64'],
23             "high mz" => ['d<', 'Float64'],
24             ];
25              
26             my $fields64 = [
27             "32-bit offset (defunct)" => ['V', 'UInt32'],
28             "index" => ['V', 'UInt32'],
29             "scan event" => ['v', 'UInt16'],
30             "scan segment" => ['v', 'UInt16'],
31             "next" => ['V', 'UInt32'],
32             "unknown long" => ['V', 'UInt32'],
33             "data size" => ['V', 'UInt32'],
34             "start time" => ['d<', 'Float64'],
35             "total current" => ['d<', 'Float64'],
36             "base intensity" => ['d<', 'Float64'],
37             "base mz" => ['d<', 'Float64'],
38             "low mz" => ['d<', 'Float64'],
39             "high mz" => ['d<', 'Float64'],
40             "offset" => ['Q<', 'Uint64'],
41             ];
42              
43             sub decode {
44 33 50   33 1 68 if ($_[2] == 64) {
45 0         0 return bless Finnigan::Decoder->read($_[1], $fields64), $_[0];
46             }
47             else {
48 33         101 return bless Finnigan::Decoder->read($_[1], $fields), $_[0];
49             }
50             }
51              
52             sub offset {
53 2     2 1 18 shift->{data}->{"offset"}->{value};
54             }
55              
56             sub index {
57 2     2 1 12 shift->{data}->{"index"}->{value};
58             }
59              
60             sub scan_event {
61 2     2 1 12 shift->{data}->{"scan event"}->{value};
62             }
63              
64             sub scan_segment {
65 2     2 1 12 shift->{data}->{"scan segment"}->{value};
66             }
67              
68             sub next {
69 2     2 1 11 shift->{data}->{"next"}->{value};
70             }
71              
72             sub unknown {
73 2     2 1 14 shift->{data}->{"unknown long"}->{value};
74             }
75              
76             sub data_size {
77 2     2 1 11 shift->{data}->{"data size"}->{value};
78             }
79              
80             sub start_time {
81 2     2 1 13 shift->{data}->{"start time"}->{value};
82             }
83              
84             sub total_current {
85 2     2 1 450 shift->{data}->{"total current"}->{value};
86             }
87              
88             sub base_intensity {
89 2     2 1 415 shift->{data}->{"base intensity"}->{value};
90             }
91              
92             sub base_mz {
93 2     2 1 421 shift->{data}->{"base mz"}->{value};
94             }
95              
96             sub low_mz {
97 2     2 1 379 shift->{data}->{"low mz"}->{value};
98             }
99              
100             sub high_mz {
101 2     2 1 368 shift->{data}->{"high mz"}->{value};
102             }
103              
104              
105             1;
106             __END__