class_docstr: Test the ViiNCBaseFileHandler reader.
class_docstr_tok: ["Test","the","ViiNCBaseFileHandler","reader","."]
docstr: Test the functions.
docstr_tok: ["Test","the","functions","."]
code: def test_functions(self, tpgi_, tpi_):
      """Test the functions."""
      with pytest.raises(NotImplementedError):
          self.reader._perform_orthorectification(
              mock.Mock(), mock.Mock()
          )
  
      with pytest.raises(NotImplementedError):
          self.reader._perform_calibration(mock.Mock(), mock.Mock())
  
      # Checks that the _perform_interpolation function is correctly executed
      variable = xr.DataArray(
          dims=("y", "x"),
          name="test_name",
          attrs={"key_1": "value_1", "key_2": "value_2"},
          data=np.zeros((10, 100)),
      )
      tpi_.return_value = [
          xr.DataArray(
              dims=("num_tie_points_act", "num_tie_points_alt"),
              data=np.ones((10, 100)),
          )
      ]
  
      return_value = self.reader._perform_interpolation(variable)
  
      tpi_.assert_called_with(
          [variable], SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR
      )
      assert np.allclose(return_value, np.ones((10, 100)))
      assert return_value.attrs == {
          "key_1": "value_1",
          "key_2": "value_2",
      }
      assert return_value.name == "test_name"
      assert return_value.dims == ("num_pixels", "num_lines")
  
      # Checks that the _perform_geo_interpolation function is correctly executed
      variable_lon = xr.DataArray(
          dims=("y", "x"),
          name="test_lon",
          attrs={"key_1": "value_lon_1", "key_2": "value_lon_2"},
          data=np.zeros((10, 100)),
      )
      variable_lat = xr.DataArray(
          dims=("y", "x"),
          name="test_lat",
          attrs={"key_1": "value_lat_1", "key_2": "value_lat_2"},
          data=np.ones((10, 100)) * 2.0,
      )
  
      tpgi_.return_value = (
          xr.DataArray(
              dims=("num_tie_points_act", "num_tie_points_alt"),
              data=np.ones((10, 100)),
          ),
          xr.DataArray(
              dims=("num_tie_points_act", "num_tie_points_alt"),
              data=6 * np.ones((10, 100)),
          ),
      )
  
      return_lon, return_lat = self.reader._perform_geo_interpolation(
          variable_lon, variable_lat
      )
  
      tpgi_.assert_called_with(
          variable_lon,
          variable_lat,
          SCAN_ALT_TIE_POINTS,
          TIE_POINTS_FACTOR,
      )
  
      assert np.allclose(return_lon, np.ones((10, 100)))
      assert return_lon.attrs == {
          "key_1": "value_lon_1",
          "key_2": "value_lon_2",
      }
      assert return_lon.name == "test_lon"
      assert return_lon.dims == ("num_pixels", "num_lines")
  
      assert np.allclose(return_lat, 6 * np.ones((10, 100)))
      assert return_lat.attrs == {
          "key_1": "value_lat_1",
          "key_2": "value_lat_2",
      }
      assert return_lat.name == "test_lat"
      assert return_lat.dims == ("num_pixels", "num_lines")
  
file_path: satpy/satpy/tests/reader_tests/test_vii_base_nc.py
imports: import datetime
  import os
  import unittest
  import uuid
  from unittest import mock
  import numpy
  import pytest
  import xarray
  from netCDF4 import Dataset
  from satpy.readers.vii_base_nc import SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR, ViiNCBaseFileHandler
label_desc: Use image node_id 4 for calling the TestViiNCBaseFileHandler obj's underlying member method code with example usage: obj.test_functions(tpgi_, tpi_) without return types