code: def test_large_query(api, large_query):
      full_products = list(api.query(**large_query))
      assert api._last_query == (
          'beginPosition:["2015-12-01T00:00:00Z" TO "2015-12-31T00:00:00Z"] '
          'footprint:"Intersects(POLYGON((0 0,0 10,10 10,10 0,0 0)))"'
      )
      assert api._last_response.status_code == 200
      assert len(full_products) > api.page_size
  
      result = list(api.query(limit=150, **large_query))
      assert result == full_products[:150]
  
      result = list(api.query(limit=20, offset=90, **large_query))
      assert result == full_products[90:110]
  
      result = list(
          api.query(
              limit=20, offset=len(full_products) - 10, **large_query
          )
      )
      assert result == full_products[-10:]
  
imports: from contextlib import contextmanager
  from datetime import datetime, date, timedelta
  import pytest
  import requests_mock
  from requests.exceptions import StreamConsumedError, ContentDecodingError, InvalidProxyURL, InvalidHeader, TooManyRedirects, ReadTimeout, SSLError
  from sentinelsat import format_query_date, SentinelAPI
  from sentinelsat.exceptions import QuerySyntaxError, QueryLengthError, UnauthorizedError
  from sentinelsat.sentinel import _format_order_by
label_desc: Use image node_id 16 for calling a global function with example usage: test_large_query(api, large_query) without return types