Skip to content

Commit 439af5d

Browse files
committed
added more tests
1 parent 3b688c2 commit 439af5d

File tree

1 file changed

+155
-0
lines changed

1 file changed

+155
-0
lines changed

integration/test/ParseGeoPointTest.js

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,161 @@ describe('Geo Point', () => {
238238
});
239239
});
240240

241+
it('can query within large distances unsorted', (done) => {
242+
let objects = [];
243+
for (let i = 0; i < 3; i++) {
244+
let obj = new TestObject();
245+
let point = new Parse.GeoPoint(0, i * 45);
246+
obj.set('location', point);
247+
obj.set('construct', 'large_dist')
248+
obj.set('index', i);
249+
objects.push(obj);
250+
}
251+
Parse.Object.saveAll(objects).then(() => {
252+
let query = new Parse.Query(TestObject);
253+
let point = new Parse.GeoPoint(1, -1);
254+
query.equalTo('construct', 'large_dist');
255+
query.withinRadiansUnsorted('location', point, 3.14);
256+
return query.find();
257+
}).then((results) => {
258+
assert.equal(results.length, 3);
259+
done();
260+
});
261+
});
262+
263+
it('can query within medium distances unsorted', (done) => {
264+
let objects = [];
265+
for (let i = 0; i < 3; i++) {
266+
let obj = new TestObject();
267+
let point = new Parse.GeoPoint(0, i * 45);
268+
obj.set('location', point);
269+
obj.set('construct', 'medium_dist')
270+
obj.set('index', i);
271+
objects.push(obj);
272+
}
273+
Parse.Object.saveAll(objects).then(() => {
274+
let query = new Parse.Query(TestObject);
275+
let point = new Parse.GeoPoint(1, -1);
276+
query.equalTo('construct', 'medium_dist');
277+
query.withinRadiansUnsorted('location', point, 3.14 * 0.5);
278+
return query.find();
279+
}).then((results) => {
280+
assert.equal(results.length, 2);
281+
assert.equal(results[0].get('index'), 0);
282+
assert.equal(results[1].get('index'), 1);
283+
done();
284+
});
285+
});
286+
287+
it('can query within small distances unsorted', (done) => {
288+
let objects = [];
289+
for (let i = 0; i < 3; i++) {
290+
let obj = new TestObject();
291+
let point = new Parse.GeoPoint(0, i * 45);
292+
obj.set('location', point);
293+
obj.set('construct', 'small_dist')
294+
obj.set('index', i);
295+
objects.push(obj);
296+
}
297+
Parse.Object.saveAll(objects).then(() => {
298+
let query = new Parse.Query(TestObject);
299+
let point = new Parse.GeoPoint(1, -1);
300+
query.equalTo('construct', 'small_dist');
301+
query.withinRadiansUnsorted('location', point, 3.14 * 0.25);
302+
return query.find();
303+
}).then((results) => {
304+
assert.equal(results.length, 1);
305+
assert.equal(results[0].get('index'), 0);
306+
done();
307+
});
308+
});
309+
310+
it('can measure distance within km unsorted - everywhere', (done) => {
311+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
312+
let query = new Parse.Query(TestPoint);
313+
query.withinKilometersUnsorted('location', sfo, 4000.0);
314+
query.find().then((results) => {
315+
assert.equal(results.length, 3);
316+
done();
317+
});
318+
});
319+
320+
it('can measure distance within km unsorted - california', (done) => {
321+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
322+
let query = new Parse.Query(TestPoint);
323+
query.withinKilometersUnsorted('location', sfo, 3700.0);
324+
query.find().then((results) => {
325+
assert.equal(results.length, 2);
326+
assert.equal(results[0].get('name'), 'San Francisco');
327+
assert.equal(results[1].get('name'), 'Sacramento');
328+
done();
329+
});
330+
});
331+
332+
it('can measure distance within km unsorted - bay area', (done) => {
333+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
334+
let query = new Parse.Query(TestPoint);
335+
query.withinKilometersUnsorted('location', sfo, 100.0);
336+
query.find().then((results) => {
337+
assert.equal(results.length, 1);
338+
assert.equal(results[0].get('name'), 'San Francisco');
339+
done();
340+
});
341+
});
342+
343+
it('can measure distance within km unsorted - mid peninsula', (done) => {
344+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
345+
let query = new Parse.Query(TestPoint);
346+
query.withinKilometersUnsorted('location', sfo, 10.0);
347+
query.find().then((results) => {
348+
assert.equal(results.length, 0);
349+
done();
350+
});
351+
});
352+
353+
it('can measure distance within miles unsorted - everywhere', (done) => {
354+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
355+
let query = new Parse.Query(TestPoint);
356+
query.withinMilesUnsorted('location', sfo, 2500.0);
357+
query.find().then((results) => {
358+
assert.equal(results.length, 3);
359+
done();
360+
});
361+
});
362+
363+
it('can measure distance within miles unsorted - california', (done) => {
364+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
365+
let query = new Parse.Query(TestPoint);
366+
query.withinMilesUnsorted('location', sfo, 2200.0);
367+
query.find().then((results) => {
368+
assert.equal(results.length, 2);
369+
assert.equal(results[0].get('name'), 'San Francisco');
370+
assert.equal(results[1].get('name'), 'Sacramento');
371+
done();
372+
});
373+
});
374+
375+
it('can measure distance within miles unsorted - bay area', (done) => {
376+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
377+
let query = new Parse.Query(TestPoint);
378+
query.withinMilesUnsorted('location', sfo, 75.0);
379+
query.find().then((results) => {
380+
assert.equal(results.length, 1);
381+
assert.equal(results[0].get('name'), 'San Francisco');
382+
done();
383+
});
384+
});
385+
386+
it('can measure distance within km unsorted - mid peninsula', (done) => {
387+
let sfo = new Parse.GeoPoint(37.6189722, -122.3748889);
388+
let query = new Parse.Query(TestPoint);
389+
query.withinMilesUnsorted('location', sfo, 10.0);
390+
query.find().then((results) => {
391+
assert.equal(results.length, 0);
392+
done();
393+
});
394+
});
395+
241396
it('supports withinPolygon open path', (done) => {
242397
const points = [
243398
new Parse.GeoPoint(37.85, -122.33),

0 commit comments

Comments
 (0)