code: def _load_and_check_limb_correction_variables(
      reader: FileYAMLReader,
      loadable_ids: list[str],
      platform_name: str,
      exp_limb_corr: bool,
  ) -> dict[DataID, xr.DataArray]:
      with mock.patch(
          "satpy.readers.mirs.read_atms_coeff_to_string"
      ) as fd, mock.patch("satpy.readers.mirs.retrieve") as rtv:
          fd.side_effect = fake_coeff_from_fn
          loaded_data_arrs = reader.load(loadable_ids)
      if exp_limb_corr:
          fd.assert_called()
          suffix = (
              f"noaa{platform_name[-2:]}"
              if platform_name.startswith("noaa")
              else "snpp"
          )
          assert rtv.call_count == 2 * len(
              [
                  var_name
                  for var_name in loadable_ids
                  if "btemp" in var_name
              ]
          )
          for calls_args in rtv.call_args_list:
              assert calls_args[0][0].endswith(f"_{suffix}.txt")
      else:
          fd.assert_not_called()
          rtv.assert_not_called()
      assert len(loaded_data_arrs) == len(loadable_ids)
      return loaded_data_arrs
  
imports: from __future__ import annotations
  import os
  from datetime import datetime
  from unittest import mock
  import numpy
  import pytest
  import xarray
  from satpy._config import config_search_paths
  from satpy.dataset import DataID
  from satpy.readers import load_reader
  from satpy.readers.yaml_reader import FileYAMLReader
label_desc: Use image node_id 8 for calling a global function with example usage: _load_and_check_limb_correction_variables(reader, loadable_ids, platform_name, exp_limb_corr) and returns: loaded_data_arrs