public void Test_0001_GeoDistanceQuery() { KiiBucket bucket = testUser.Bucket("aBucket"); KiiObject obj = bucket.NewKiiObject(); KiiGeoPoint point = new KiiGeoPoint(35.667983, 139.739356); obj.SetGeoPoint("myLoc", point); obj.Save(); KiiGeoPoint center = new KiiGeoPoint(35.677379, 139.702148); KiiClause clause = KiiClause.GeoDistance("myloc", center, 4000, "distanceToMyLoc"); KiiQuery query = new KiiQuery(clause); KiiQueryResult <KiiObject> result = bucket.Query(query); KiiObject retObj = result [0]; KiiGeoPoint retPoint; retPoint = retObj.GetGeoPoint("myLoc"); Assert.AreEqual(point.Latitude, retPoint.Latitude); Assert.AreEqual(point.Longitude, retPoint.Longitude); JsonObject jObj = retObj.GetJsonObject("_calculated"); double retDistance = jObj.GetDouble("distanceToMyLoc"); double expectedDistance = distanceInMeter(point, center); Assert.IsTrue(approximateEqual(expectedDistance, retDistance, 0.00001)); }
public void Test_0010_GeoBox_Valid_key_Valid_Center_Invalid_radius() { KiiGeoPoint center = new KiiGeoPoint(70.00, 100); double radius = -1; string key = "currentLocation"; string putDistanceInto = "calculatedDistance"; KiiClause.GeoDistance(key, center, radius, putDistanceInto); }
public void Test_0008_GeoDistance_empty_key() { KiiGeoPoint center = new KiiGeoPoint(70.00, 100); double radius = 10.0; string key = ""; string putDistanceInto = "calculatedDistance"; KiiClause.GeoDistance(key, center, radius, putDistanceInto); }
public void Test_0004_GeoDistanceQuery_sort_asc() { KiiBucket bucket = testUser.Bucket("aBucket"); KiiObject obj1 = bucket.NewKiiObject(); KiiGeoPoint point1 = new KiiGeoPoint(35.672568, 139.723606); obj1.SetGeoPoint("myLoc", point1); obj1.Save(); KiiObject obj2 = bucket.NewKiiObject(); KiiGeoPoint point2 = new KiiGeoPoint(35.667983, 139.739356); obj2.SetGeoPoint("myLoc", point2); obj2.Save(); // not in radius KiiObject obj3 = bucket.NewKiiObject(); KiiGeoPoint point3 = new KiiGeoPoint(); obj3.SetGeoPoint("myLoc", point3); obj3.Save(); KiiGeoPoint center = new KiiGeoPoint(35.677379, 139.702148); KiiClause clause = KiiClause.GeoDistance("myloc", center, 4000, "distanceToMyLoc"); KiiQuery query = new KiiQuery(clause); query.SortByAsc("_calculated.distanceToMyLoc"); KiiQueryResult <KiiObject> result = bucket.Query(query); Assert.AreEqual(result.Count, 2); KiiObject retObj1 = result [0]; KiiGeoPoint retPoint1 = retObj1.GetGeoPoint("myLoc"); Assert.AreEqual(point1.Latitude, retPoint1.Latitude); Assert.AreEqual(point1.Longitude, retPoint1.Longitude); JsonObject jObj1 = retObj1.GetJsonObject("_calculated"); KiiObject retObj2 = result [1]; KiiGeoPoint retPoint2 = retObj2.GetGeoPoint("myLoc"); Assert.AreEqual(point2.Latitude, retPoint2.Latitude); Assert.AreEqual(point2.Longitude, retPoint2.Longitude); JsonObject jObj2 = retObj2.GetJsonObject("_calculated"); double retDistance1 = jObj1.GetDouble("distanceToMyLoc"); double retDistance2 = jObj2.GetDouble("distanceToMyLoc"); double expectedDistance1 = distanceInMeter(point1, center); double expectedDistance2 = distanceInMeter(point2, center); Assert.IsTrue(approximateEqual(expectedDistance1, retDistance1, 0.00001)); Assert.IsTrue(approximateEqual(expectedDistance2, retDistance2, 0.00001)); }
public void Test_0006_GeoDistance_Valid_Parameters() { KiiGeoPoint center = new KiiGeoPoint(70.00, 100); double radius = 10.0; string key = "currentLocation"; string putDistanceInto = "calculatedDistance"; KiiClause c = KiiClause.GeoDistance(key, center, radius, putDistanceInto); JsonObject clause = c.ToJson(); Assert.AreEqual(clause.GetString("type"), "geodistance"); Assert.AreEqual(clause.GetString("field"), key); Assert.AreEqual(clause.GetString("putDistanceInto"), putDistanceInto); Assert.AreEqual(clause.GetDouble("radius"), radius); JsonObject centerJson = clause.GetJsonObject("center"); Assert.AreEqual(centerJson.GetDouble("lat"), center.Latitude); Assert.AreEqual(centerJson.GetDouble("lon"), center.Longitude); }
public void Test_0002_GeoDistanceQuery_calculatedDistance_nil() { KiiBucket bucket = testUser.Bucket("aBucket"); KiiObject obj = bucket.NewKiiObject(); KiiGeoPoint point = new KiiGeoPoint(35.667983, 139.739356); obj.SetGeoPoint("myLoc", point); obj.Save(); KiiGeoPoint center = new KiiGeoPoint(35.677379, 139.702148); KiiClause clause = KiiClause.GeoDistance("myloc", center, 4000, ""); KiiQuery query = new KiiQuery(clause); KiiQueryResult <KiiObject> result = bucket.Query(query); KiiObject retObj = result [0]; KiiGeoPoint retPoint; retPoint = retObj.GetGeoPoint("myLoc"); Assert.AreEqual(point.Latitude, retPoint.Latitude); Assert.AreEqual(point.Longitude, retPoint.Longitude); Assert.IsFalse(retObj.Has("_calculated")); }
public void NotGeoDistanceTest() { KiiBucket bucket = KiiUser.CurrentUser.Bucket("my_bucket"); KiiObject obj1 = bucket.NewKiiObject(); obj1["name"] = "kii"; obj1.SetGeoPoint("location", new KiiGeoPoint(35.668387, 139.739495)); obj1.Save(); KiiObject obj2 = bucket.NewKiiObject(); obj2["name"] = "TDL"; obj2.SetGeoPoint("location", new KiiGeoPoint(35.633114, 139.880405)); obj2.Save(); KiiQuery query = new KiiQuery(KiiClause.Not(KiiClause.GeoDistance("location", new KiiGeoPoint(35.667384, 139.739994), 2000, null))); query.SortByAsc("name"); KiiQueryResult <KiiObject> results = bucket.Query(query); Assert.AreEqual(1, results.Count); Assert.AreEqual("TDL", results[0].GetString("name")); }