Leaflet/spec/suites/geo/LatLngBoundsSpec.js

137 lines
3.4 KiB
JavaScript
Raw Normal View History

describe('LatLngBounds', function() {
var a, c;
beforeEach(function() {
2012-10-07 02:01:17 +08:00
a = new L.LatLngBounds(
new L.LatLng(14, 12),
new L.LatLng(30, 40));
c = new L.LatLngBounds();
});
describe('constructor', function () {
it('instantiates either passing two latlngs or an array of latlngs', function () {
var b = new L.LatLngBounds([
new L.LatLng(14, 12),
new L.LatLng(30, 40)
]);
expect(b).toEqual(a);
expect(b.getNorthWest()).toEqual(new L.LatLng(30, 12));
});
});
describe('#extend', function () {
it('extends the bounds by a given point', function () {
a.extend(new L.LatLng(20, 50));
expect(a.getNorthEast()).toEqual(new L.LatLng(30, 50));
});
it('extends the bounds by given bounds', function () {
a.extend([[20, 50], [8, 40]]);
expect(a.getSouthEast()).toEqual(new L.LatLng(8, 50));
});
});
describe('#getCenter', function () {
it('returns the bounds center', function () {
expect(a.getCenter()).toEqual(new L.LatLng(22, 26));
});
});
describe('#pad', function () {
it('pads the bounds by a given ratio', function () {
var b = a.pad(0.5);
expect(b).toEqual(L.latLngBounds([[6, -2], [38, 54]]));
});
});
describe('#equals', function () {
it('returns true if bounds equal', function () {
expect(a.equals([[14, 12], [30, 40]])).toBe(true);
expect(a.equals([[14, 13], [30, 40]])).toBe(false);
expect(a.equals(null)).toBe(false);
});
});
describe('#isValid', function() {
it('returns true if properly set up', function() {
expect(a.isValid()).toBeTruthy();
});
it('returns false if is invalid', function() {
expect(c.isValid()).toBeFalsy();
});
it('returns true if extended', function() {
c.extend([0, 0]);
expect(c.isValid()).toBeTruthy();
});
});
describe('#getWest', function () {
it('returns a proper bbox west value', function() {
expect(a.getWest()).toEqual(12);
});
});
describe('#getSouth', function () {
it('returns a proper bbox south value', function() {
expect(a.getSouth()).toEqual(14);
});
});
describe('#getEast', function () {
it('returns a proper bbox east value', function() {
expect(a.getEast()).toEqual(40);
});
});
describe('#getNorth', function () {
it('returns a proper bbox north value', function() {
expect(a.getNorth()).toEqual(30);
});
});
describe('#toBBoxString', function () {
it('returns a proper left,bottom,right,top bbox', function() {
expect(a.toBBoxString()).toEqual("12,14,40,30");
});
});
2013-01-28 08:09:26 +08:00
describe('#getNorthWest', function () {
it('returns a proper north-west LatLng', function() {
2013-01-28 08:09:26 +08:00
expect(a.getNorthWest()).toEqual(new L.LatLng(a.getNorth(), a.getWest()));
});
});
describe('#getSouthEast', function () {
it('returns a proper south-east LatLng', function() {
2013-01-28 08:09:26 +08:00
expect(a.getSouthEast()).toEqual(new L.LatLng(a.getSouth(), a.getEast()));
});
});
describe('#contains', function () {
it('returns true if contains latlng point', function () {
expect(a.contains([16, 20])).toBe(true);
expect(L.latLngBounds(a).contains([5, 20])).toBe(false);
});
2013-01-28 08:09:26 +08:00
it('returns true if contains bounds', function () {
expect(a.contains([[16, 20], [20, 40]])).toBe(true);
expect(a.contains([[16, 50], [8, 40]])).toBe(false);
});
});
describe('#intersects', function () {
it('returns true if intersects the given bounds', function () {
expect(a.intersects([[16, 20], [50, 60]])).toBe(true);
expect(a.contains([[40, 50], [50, 60]])).toBe(false);
});
2013-01-28 08:09:26 +08:00
});
});