/**
  * @param $column
  * @param $swLatitude
  * @param $swLongitude
  * @param $neLatitude
  * @param $neLongitude
  * @param array $keyToInclude
  *
  * @return Collection|ParseObject[]
  */
 public function withinBox($column, $swLatitude, $swLongitude, $neLatitude, $neLongitude, $keyToInclude = [])
 {
     $southWest = new ParseGeoPoint((double) $swLatitude, (double) $swLongitude);
     $northEast = new ParseGeoPoint((double) $neLatitude, (double) $neLongitude);
     $this->query->withinGeoBox($column, $southWest, $northEast);
     for ($i = 0; $i < count($keyToInclude); $i++) {
         $this->query->includeKey($keyToInclude[$i]);
     }
     return Collection::make($this->query->find($this->useMasterKey));
 }
 public function testGeoBoxTooLarge()
 {
     $centerPoint = new ParseGeoPoint(0, 0);
     $center = ParseObject::create('TestObject');
     $center->set('location', $centerPoint);
     $center->save();
     $southwest = new ParseGeoPoint(-89, -179);
     $northeast = new ParseGeoPoint(89, 179);
     // This is an interesting test case because mongo can actually handle this
     // kind of query, but
     // if one actually happens, it's probably that the developer switches the
     // two points.
     $query = new ParseQuery('TestObject');
     $query->withinGeoBox('location', $southwest, $northeast);
     try {
         $query->find();
         $this->assertTrue(false, 'Query should fail for being too large.');
     } catch (ParseException $e) {
     }
 }