spec/file/data_spec.rb in fit_parser-0.0.5 vs spec/file/data_spec.rb in fit_parser-0.0.6
- old
+ new
@@ -1,70 +1,78 @@
require 'spec_helper'
describe FitParser::File::Data do
- describe ".generate" do
+ describe '.generate' do
context 'standard definition' do
let(:definition) do
- FitParser::File::Definition.read example_file('record/message/definition')
+ FitParser::File::Definition.read(
+ example_file('record/message/definition')
+ )
end
subject { described_class.generate(definition) }
its(:ancestors) { should include(BinData::Record) }
- its("new.record_type") { should eq(:file_id) }
+ its('new.record_type') { should eq(:file_id) }
end
context 'definition with multiple time the same field' do
before :all do
@fields = FitParser::File::Definitions.fields
@dyn_fields = FitParser::File::Definitions.dyn_fields
# force a fake definition for scaling of arrays
- FitParser::File::Definitions.add_field 2, 2, "field_array", :type => 6, :scale => 10, :offset => 0
+ FitParser::File::Definitions.add_field(
+ 2, 2, 'field_array', type: 6, scale: 10, offset: 0
+ )
end
after :all do
FitParser::File::Definitions.fields = @fields
FitParser::File::Definitions.dyn_fields = @dyn_fields
end
before :each do
def_file = example_file('record/message/definition_field_array.fit')
data_file = example_file('record/message/data_field_array.fit')
- definition = described_class.generate(FitParser::File::Definition.read def_file)
- @result = definition.read( data_file )
+ definition = described_class.generate(
+ FitParser::File::Definition.read(def_file)
+ )
+ @result = definition.read(data_file)
end
- it "reads the entire record" do
+ it 'reads the entire record' do
# read first the record definition
- expect(@result.raw_field_array).to be == [ 123456789, 987654321 ]
- expect(@result.raw_field_4).to be == [ 1, 3 ]
+ expect(@result.raw_field_array).to be == [123_456_789, 987_654_321]
+ expect(@result.raw_field_4).to be == [1, 3]
expect(@result.raw_field_8).to be == 1539
expect(@result.raw_active_time_zone).to be == 0
end
-
- it "does not apply the scale equal to 1 for integer" do
+
+ it 'does not apply the scale equal to 1 for integer' do
expect(@result.raw_active_time_zone).to be == 0
expect(@result.active_time_zone.to_s).to be_eql '0'
end
-
- it "does not apply the scale equal to 1 for arrays" do
- expect(@result.raw_field_4).to be == [ 1, 3 ]
- expect(@result.field_4.to_s).to be_eql '[1, 3]'
+
+ it 'does not apply the scale equal to 1 for arrays' do
+ expect(@result.raw_field_4).to be == [1, 3]
+ expect(@result.field_4.to_s).to be_eql('[1, 3]')
end
- it "does apply scale on each element of an array" do
- expect(@result.raw_field_array).to be == [ 123456789, 987654321 ]
+ it 'does apply scale on each element of an array' do
+ expect(@result.raw_field_array).to be == [123_456_789, 987_654_321]
expect(@result.field_array.to_s).to be_eql '[12345678.9, 98765432.1]'
end
end
context 'definition with dynamic fields' do
before :each do
def_file = example_file('record/message/definition_dynamic_fields.fit')
data_file = example_file('record/message/data_dynamic_fields.fit')
- definition = described_class.generate(FitParser::File::Definition.read def_file)
- @result = definition.read( data_file )
+ definition = described_class.generate(
+ FitParser::File::Definition.read(def_file)
+ )
+ @result = definition.read(data_file)
end
it 'uses dynamic field value' do
expect(@result.raw_product).to be == 1499
expect(@result.product).to be == 'swim'
@@ -73,36 +81,46 @@
context 'definition with non basic types' do
before :each do
def_file = example_file('record/message/definition_dynamic_fields.fit')
data_file = example_file('record/message/data_dynamic_fields.fit')
- definition = described_class.generate(FitParser::File::Definition.read def_file)
- @result = definition.read( data_file )
+ definition = described_class.generate(
+ FitParser::File::Definition.read(def_file)
+ )
+ @result = definition.read(data_file)
end
it 'returns the real value' do
expect(@result.raw_type).to be == 1
expect(@result.type).to be == 'device'
end
end
context 'definition with bit field types' do
before :each do
- def_file = example_file('record/message/definition_file_capabilities.fit')
- @definition = described_class.generate(FitParser::File::Definition.read def_file)
+ def_file = example_file(
+ 'record/message/definition_file_capabilities.fit'
+ )
+ @definition = described_class.generate(
+ FitParser::File::Definition.read(def_file)
+ )
end
context 'when only 1 bit set' do
it 'returns the single value' do
- res = @definition.read( example_file('record/message/data_file_capabilities_activities.fit') )
+ res = @definition.read(
+ example_file('record/message/data_file_capabilities_activities.fit')
+ )
expect(res.raw_flags).to eq(2)
expect(res.flags).to eq('read')
end
end
context 'when several bits set' do
it 'returns the compound value' do
- res = @definition.read( example_file('record/message/data_file_capabilities_settings.fit') )
+ res = @definition.read(
+ example_file('record/message/data_file_capabilities_settings.fit')
+ )
expect(res.raw_flags).to eq(6)
expect(res.flags).to eq('read/write')
end
end
end