def pan_between(query_from, query_to, duration: nil)
      Query.ensure_valid_query(query_from)
      Query.ensure_valid_query(query_to)

      options = {
          duration: duration || DEFAULT_PAN_OPTIONS[:duration]
      }

      Calabash::Internal.with_current_target do |target|
        target.pan_between(Query.new(query_from), Query.new(query_to), options)
      end
    end
def pan_between(query_from, query_to, duration: nil)
      Query.ensure_valid_query(query_from)
      Query.ensure_valid_query(query_to)

      options = {
          duration: duration || DEFAULT_PAN_OPTIONS[:duration]
      }

      Calabash::Internal.with_current_target do |target|
        target.pan_between(Query.new(query_from), Query.new(query_to), options)
      end
    end
Performs a **pan** from the center of the first view that matches
 `query_from` to the center of the first view that matches `query_to`.

 Also known as **drag and drop**.

 @example
  #Panning between two elements.
  cal.pan_between("* id:'first'", "* id:'second'")


      ┌───────────┐
      │           │
      │     ─     │  id: 'first'
      │      \    │
      └───────\───┘
               \
                \
                 \
                  \
                   \
                    \
                 ┌───\───────┐
                 │    \      │
   id: 'second'  │     x     │
                 │           │
                 └───────────┘

 @param [String, Hash, Calabash::Query] query_from A query describing the
  view to pan *from*
 @param [String, Hash, Calabash::Query] query_to A query describing the
  view to pan *to*
 @param [Number] duration (default: 1.0) The amount of time in seconds the
  gesture lasts.
 @raise [ViewNotFoundError] If the `query_from` returns no results.
 @raise [ViewNotFoundError] If the `query_to` returns no results.
 @raise [ArgumentError] If `query_from` is invalid.
 @raise [ArgumentError] If `query_to` is invalid.