Files
mongo/jstests/core/geo_s2edgecases.js
2016-03-09 12:18:14 -05:00

62 lines
1.5 KiB
JavaScript

t = db.geo_s2edgecases;
t.drop();
roundworldpoint = {
"type": "Point",
"coordinates": [180, 0]
};
// Opposite the equator
roundworld = {
"type": "Polygon",
"coordinates": [[[179, 1], [-179, 1], [-179, -1], [179, -1], [179, 1]]]
};
t.insert({geo: roundworld});
roundworld2 = {
"type": "Polygon",
"coordinates": [[[179, 1], [179, -1], [-179, -1], [-179, 1], [179, 1]]]
};
t.insert({geo: roundworld2});
// North pole
santapoint = {
"type": "Point",
"coordinates": [180, 90]
};
santa = {
"type": "Polygon",
"coordinates": [[[179, 89], [179, 90], [-179, 90], [-179, 89], [179, 89]]]
};
t.insert({geo: santa});
santa2 = {
"type": "Polygon",
"coordinates": [[[179, 89], [-179, 89], [-179, 90], [179, 90], [179, 89]]]
};
t.insert({geo: santa2});
// South pole
penguinpoint = {
"type": "Point",
"coordinates": [0, -90]
};
penguin1 = {
"type": "Polygon",
"coordinates": [[[0, -89], [0, -90], [179, -90], [179, -89], [0, -89]]]
};
t.insert({geo: penguin1});
penguin2 = {
"type": "Polygon",
"coordinates": [[[0, -89], [179, -89], [179, -90], [0, -90], [0, -89]]]
};
t.insert({geo: penguin2});
t.ensureIndex({geo: "2dsphere", nonGeo: 1});
res = t.find({"geo": {"$geoIntersects": {"$geometry": roundworldpoint}}});
assert.eq(res.count(), 2);
res = t.find({"geo": {"$geoIntersects": {"$geometry": santapoint}}});
assert.eq(res.count(), 2);
res = t.find({"geo": {"$geoIntersects": {"$geometry": penguinpoint}}});
assert.eq(res.count(), 2);