Sha256: a78f92ff3ee16911cba00f2a3de2ffbc3c795a165346748de1bb986dca6ed991

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

describe GeoWorks::Coverage do
  let(:cov_string) { 'northlimit=43.039; eastlimit=-69.856; southlimit=42.943; '\
                     'westlimit=-71.032; units=degrees; projection=EPSG:4326'
  }

  subject { described_class.new(43.039, -69.856, 42.943, -71.032) }

  describe '#parse' do
    context 'with a valid coverage string' do
      it 'returns a coverage instance' do
        coverage = described_class.parse(cov_string)
        expect(coverage).to be_an_instance_of(described_class)
        expect(coverage.n).to eq(43.039)
        expect(coverage.e).to eq(-69.856)
        expect(coverage.s).to eq(42.943)
        expect(coverage.w).to eq(-71.032)
      end
    end

    context 'with an invalid coverage string' do
      it 'returns nil' do
        expect(described_class.parse('invalid')).to be_nil
      end
    end
  end

  describe 'parse_coordinate' do
    it 'parses a coordinate' do
      expect(described_class.parse_coordinate(cov_string, /northlimit=([\.\d\-]+);/)).to eq 43.039
    end
  end

  describe '#to_s' do
    it 'converts coordinates to a coverage string' do
      expect(subject.to_s).to eq cov_string
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
geo_works-0.2.0 spec/values/coverage_spec.rb
geo_works-0.1.4 spec/values/coverage_spec.rb
geo_works-0.1.3 spec/values/coverage_spec.rb
geo_works-0.1.2 spec/values/coverage_spec.rb
geo_works-0.1.1 spec/values/coverage_spec.rb
geo_works-0.1.0 spec/values/coverage_spec.rb