class_docstr: Test the pyspectral-based Rayleigh correction modifier.
docstr: Test PSPRayleighReflectance with fake data.
docstr_tok: ["Test","PSPRayleighReflectance","with","fake","data","."]
code: def test_rayleigh_corrector(
      self,
      name,
      wavelength,
      resolution,
      aerosol_type,
      reduce_lim_low,
      reduce_lim_high,
      reduce_strength,
      exp_mean,
      exp_unique,
  ):
      """Test PSPRayleighReflectance with fake data."""
      from satpy.modifiers.atmosphere import PSPRayleighReflectance
  
      ray_cor = PSPRayleighReflectance(
          name=name,
          atmosphere="us-standard",
          aerosol_types=aerosol_type,
          reduce_lim_low=reduce_lim_low,
          reduce_lim_high=reduce_lim_high,
          reduce_strength=reduce_strength,
      )
      assert ray_cor.attrs["name"] == name
      assert ray_cor.attrs["atmosphere"] == "us-standard"
      assert ray_cor.attrs["aerosol_types"] == aerosol_type
      assert ray_cor.attrs["reduce_lim_low"] == reduce_lim_low
      assert ray_cor.attrs["reduce_lim_high"] == reduce_lim_high
      assert ray_cor.attrs["reduce_strength"] == reduce_strength
  
      input_band, red_band, *_ = self._create_test_data(
          name, wavelength, resolution
      )
      res = ray_cor([input_band, red_band])
  
      assert isinstance(res, xr.DataArray)
      assert isinstance(res.data, da.Array)
  
      data = res.values
      unique = np.unique(data[~np.isnan(data)])
      np.testing.assert_allclose(np.nanmean(data), exp_mean, rtol=1e-5)
      assert data.shape == (3, 5)
      np.testing.assert_allclose(unique, exp_unique, rtol=1e-5)
  
imports: import unittest
  from datetime import datetime
  from unittest import mock
  import dask.array
  import numpy
  import pytest
  import xarray
  from pyresample.geometry import AreaDefinition, StackedAreaDefinition
  from pytest_lazyfixture import lazy_fixture
label_desc: Use image node_id 3 for calling the TestPSPRayleighReflectance obj's underlying member method code with example usage: obj.test_rayleigh_corrector(name, wavelength, resolution, aerosol_type, reduce_lim_low, reduce_lim_high, reduce_strength, exp_mean, exp_unique) without return types