public function testLocationWithLatitudeAndLongitude()
 {
     $this->directionsWaypoint->setLocation(1.1, 2.1, false);
     $this->assertSame(1.1, $this->directionsWaypoint->getLocation()->getLatitude());
     $this->assertSame(2.1, $this->directionsWaypoint->getLocation()->getLongitude());
     $this->assertFalse($this->directionsWaypoint->getLocation()->isNoWrap());
 }
 /**
  * Adds a waypoint to the directions request.
  *
  * Available prototypes:
  * - function addWaypoint(Ivory\GoogleMap\Services\Directions\DirectionsWaypoint $waypoint)
  * - function addWaypoint(string $location)
  * - function addWaypoint(double $latitude, double $longitude, boolean $noWrap)
  * - function addWaypoint(Ivory\GoogleMap\Base\Coordinate $location)
  *
  * @throws \Ivory\GoogleMap\Exception\DirectionsException If the waypoint is not valid (prototypes).
  */
 public function addWaypoint()
 {
     $args = func_get_args();
     if (isset($args[0]) && $args[0] instanceof DirectionsWaypoint) {
         $this->waypoints[] = $args[0];
     } elseif (isset($args[0]) && is_numeric($args[0]) && (isset($args[1]) && is_numeric($args[1]))) {
         $waypoint = new DirectionsWaypoint();
         $waypoint->setLocation($args[0], $args[1]);
         if (isset($args[2]) && is_bool($args[2])) {
             $waypoint->getLocation()->setNoWrap($args[2]);
         }
         $this->waypoints[] = $waypoint;
     } elseif (isset($args[0]) && (is_string($args[0]) || $args[0] instanceof Coordinate)) {
         $waypoint = new DirectionsWaypoint();
         $waypoint->setLocation($args[0]);
         $this->waypoints[] = $waypoint;
     } else {
         throw DirectionsException::invalidDirectionsRequestWaypoint();
     }
 }