# encoding: utf-8 require 'spec_helper' describe "Cartographic coordinates" do let(:smods_rec) { Stanford::Mods::Record.new } let(:no_coord) do <<-EOF Scale 1:500,000 EOF end let(:with_coords) do <<-EOF Scale 1:500,000 (W16°--E28°/N13°--S15°). EOF end let(:with_bad_data) do <<-EOF Scale 1:500,000 (Unknown). EOF end context "coordinates" do it "returns empty array if no coordinates in the mods" do smods_rec.from_str(no_coord) expect(smods_rec.coordinates).to eq([""]) end it "returns decimal representation of latitude and longitude" do smods_rec.from_str(with_coords) expect(smods_rec.coordinates).to eq(["(W16°--E28°/N13°--S15°)."]) end end describe "#coordinates_as_bbox" do it "returns empty array if no coordinates in the mods" do smods_rec.from_str(no_coord) expect(smods_rec.point_bbox).to eq([]) end it "returns empty array if bad data is in the mods" do smods_rec.from_str(with_bad_data) expect(smods_rec.point_bbox).to eq([]) end it "returns decimal representation of latitude and longitude" do smods_rec.from_str(with_coords) expect(smods_rec.point_bbox).to eq(["-16.0 -15.0 28.0 13.0"]) end end describe "#coordinates_as_envelope" do it "returns empty array if no coordinates in the mods" do smods_rec.from_str(no_coord) expect(smods_rec.coordinates_as_envelope).to eq([]) end it "returns empty array if bad data is in the mods" do smods_rec.from_str(with_bad_data) expect(smods_rec.coordinates_as_envelope).to eq([]) end it "returns decimal representation of latitude and longitude" do smods_rec.from_str(with_coords) expect(smods_rec.coordinates_as_envelope).to eq(["ENVELOPE(-16.0, 28.0, -15.0, 13.0)"]) end end end # describe Cartographic coordinates