code: def test_check_matching_columns_raises_appropriate_errors():
      df = pd.DataFrame(columns=["a", "b", "c"])
  
      meta = pd.DataFrame(columns=["b", "a", "c"])
      with pytest.raises(
          ValueError, match="Order of columns does not match"
      ):
          assert check_matching_columns(meta, df)
  
      meta = pd.DataFrame(columns=["a", "b", "c", "d"])
      with pytest.raises(ValueError, match="Missing: \\['d'\\]"):
          assert check_matching_columns(meta, df)
  
      meta = pd.DataFrame(columns=["a", "b"])
      with pytest.raises(ValueError, match="Extra:   \\['c'\\]"):
          assert check_matching_columns(meta, df)
  
imports: from __future__ import annotations
  import re
  import warnings
  from collections.abc import Iterable
  import numpy
  import pandas
  import pytest
  from packaging.version import Version
  import dask
  import dask.dataframe
  from dask.dataframe._compat import PANDAS_GE_200, tm
  from dask.dataframe.core import apply_and_enforce
  from dask.dataframe.utils import UNKNOWN_CATEGORIES, assert_eq, check_matching_columns, check_meta, is_dataframe_like, is_index_like, is_series_like, make_meta, meta_frame_constructor, meta_nonempty, meta_series_constructor, pyarrow_strings_enabled, raise_on_meta_error, shard_df_on_index, valid_divisions
  from dask.local import get_sync
label_desc: Use image node_id 11 for calling a global function with example usage: test_check_matching_columns_raises_appropriate_errors() without return types