code: def test_linear_smoketest(self):
      # Should be exact for linear functions, independent of triangulation
      funcs = [
          lambda x, y: 0 * x + 1,
          lambda x, y: 0 + x,
          lambda x, y: -2 + y,
          lambda x, y: 3 + 3 * x + 14.15 * y,
      ]
  
      for j, func in enumerate(funcs):
          self._check_accuracy(
              func,
              tol=1e-13,
              atol=1e-7,
              rtol=1e-7,
              err_msg="Function %d" % j,
          )
          self._check_accuracy(
              func,
              tol=1e-13,
              atol=1e-7,
              rtol=1e-7,
              alternate=True,
              err_msg="Function (alternate) %d" % j,
          )
          # check rescaling
          self._check_accuracy(
              func,
              tol=1e-13,
              atol=1e-7,
              rtol=1e-7,
              err_msg="Function (rescaled) %d" % j,
              rescale=True,
          )
          self._check_accuracy(
              func,
              tol=1e-13,
              atol=1e-7,
              rtol=1e-7,
              alternate=True,
              rescale=True,
              err_msg="Function (alternate, rescaled) %d" % j,
          )
  
imports: from __future__ import division, print_function, absolute_import
  import os
  import numpy
  from numpy.testing import assert_equal, assert_allclose, assert_almost_equal
  from pytest import raises
  import pytest
  from scipy._lib._numpy_compat import suppress_warnings
  import scipy.interpolate.interpnd
  import scipy.spatial.qhull
  import pickle
label_desc: Use image node_id 2 for calling the TestCloughTocher2DInterpolator obj's underlying member method code with example usage: obj.test_linear_smoketest() without return types