describe('quickhull', function () {
	describe('getDistant', function () {
		it('zero distance', function () {
			var bl = [
				{ lat: 0, lng: 0 },
				{ lat: 0, lng: 10 }
			];
			expect(L.QuickHull.getDistant({ lat: 0, lng: 0 }, bl)).to.eql(0);
		});
		it('non-zero distance', function () {
			var bl = [
				{ lat: 0, lng: 0 },
				{ lat: 0, lng: 10 }
			];
			expect(L.QuickHull.getDistant({ lat: 5, lng: 5 }, bl)).to.eql(-50);
		});
	});

	describe('getConvexHull', function () {
		it('creates a hull', function () {
			expect(L.QuickHull.getConvexHull([	{ lat: 0, lng: 0 },
								{ lat: 10, lng: 0 },
								{ lat: 10, lng: 10 },
								{ lat: 0, lng: 10 },
								{ lat: 5, lng: 5 }
							 ])).to.eql([
							 	{ lat: 0, lng: 10 },
							 	{ lat: 10, lng: 10 },
							 	{ lat: 10, lng: 0 },
							 	{ lat: 0, lng: 0 }
							 ]);
		});
		it('creates a hull for vertically-aligned objects', function () {
			expect(L.QuickHull.getConvexHull([	{ lat: 0, lng: 0 },
								{ lat: 5, lng: 0 },
								{ lat: 10, lng: 0 }
							 ])).to.eql([
							 	{ lat: 0, lng: 0 },
							 	{ lat: 10, lng: 0 }
							 ]);
		});
		it('creates a hull for horizontally-aligned objects', function () {
			expect(L.QuickHull.getConvexHull([	{ lat: 0, lng: 0 },
								{ lat: 0, lng: 5 },
								{ lat: 0, lng: 10 }
							 ])).to.eql([
							 	{ lat: 0, lng: 0 },
							 	{ lat: 0, lng: 10 }
							 ]);
		});
	});
});
