code: def test_gcp_transformer_tps_option():
      """Use thin plate spline transformation when requested."""
      # TPS ensures that GCPs are (to within some precision) solutions of the transformation.
      # This is not the case for polynomials transformations.
      with GCPTransformer(gcps(), tps=True) as transformer:
          for gcp in gcps():
              x_, y_ = transformer.xy(gcp.row, gcp.col, offset="ul")
              assert gcp.x == pytest.approx(x_)
              assert gcp.y == pytest.approx(y_)
              row_, col_ = transformer.rowcol(
                  gcp.x, gcp.y, op=lambda arg: arg
              )
              assert gcp.row == pytest.approx(row_)
              assert gcp.col == pytest.approx(col_)
  
imports: import logging
  import math
  from array import array
  import numpy
  import pytest
  from affine import Affine
  import rasterio
  from rasterio.control import GroundControlPoint
  from rasterio.errors import TransformError
  from rasterio import transform
  from rasterio.transform import AffineTransformer, GCPTransformer, RPCTransformer, get_transformer, rowcol, xy
  from .conftest import assert_bounding_box_equal
label_desc: Use image node_id 33 for calling a global function with example usage: test_gcp_transformer_tps_option() without return types