code: def test_essl_moisture():
      """Test ESSL moisture compositor."""
      from satpy.enhancements.atmosphere import essl_moisture
  
      ratio = xr.DataArray(
          da.linspace(1.0, 1.7, 25, chunks=5).reshape((5, 5)),
          dims=("y", "x"),
          attrs={
              "name": "ratio",
              "calibration": "reflectance",
              "units": "%",
              "mode": "L",
          },
      )
      im = XRImage(ratio)
  
      essl_moisture(im)
      assert im.data.attrs["mode"] == "RGB"
      np.testing.assert_array_equal(im.data["bands"], ["R", "G", "B"])
      assert im.data.sel(bands="R")[0, 0] == 1
      np.testing.assert_allclose(
          im.data.sel(bands="R")[2, 2], 0.04, rtol=1e-4
      )
      np.testing.assert_allclose(
          im.data.sel(bands="G")[2, 2], 0.42857, rtol=1e-4
      )
      np.testing.assert_allclose(
          im.data.sel(bands="B")[2, 2], 0.1875, rtol=1e-4
      )
  
      # test FCI test data correction
      ratio = xr.DataArray(
          da.linspace(1.0, 1.7, 25, chunks=5).reshape((5, 5)),
          dims=("y", "x"),
          attrs={
              "name": "ratio",
              "calibration": "reflectance",
              "units": "%",
              "mode": "L",
              "sensor": "fci",
              "start_time": datetime.datetime(1999, 1, 1),
          },
      )
      im = XRImage(ratio)
      essl_moisture(im)
      np.testing.assert_allclose(
          im.data.sel(bands="R")[3, 3], 0.7342, rtol=1e-4
      )
      np.testing.assert_allclose(
          im.data.sel(bands="G")[3, 3], 0.7257, rtol=1e-4
      )
      np.testing.assert_allclose(
          im.data.sel(bands="B")[3, 3], 0.39, rtol=1e-4
      )
  
imports: import datetime
  import dask.array
  import numpy
  import xarray
  from trollimage.xrimage import XRImage
label_desc: Use image node_id 1 for calling a global function with example usage: test_essl_moisture() without return types