code: def test_usecols_subset_names_mismatch_orig_columns(
      all_parsers, usecols, request
  ):
      data = "a,b,c,d\n1,2,3,4\n5,6,7,8"
      names = ["A", "B", "C", "D"]
      parser = all_parsers
  
      if parser.engine == "pyarrow":
          if isinstance(usecols[0], int):
              with pytest.raises(
                  ValueError, match=_msg_pyarrow_requires_names
              ):
                  parser.read_csv(
                      StringIO(data),
                      header=0,
                      names=names,
                      usecols=usecols,
                  )
              return
          # "pyarrow.lib.ArrowKeyError: Column 'A' in include_columns does not exist"
          pytest.skip(
              reason="https://github.com/apache/arrow/issues/38676"
          )
  
      result = parser.read_csv(
          StringIO(data), header=0, names=names, usecols=usecols
      )
      expected = DataFrame({"A": [1, 5], "C": [3, 7]})
      tm.assert_frame_equal(result, expected)
  
imports: from io import StringIO
  import numpy
  import pytest
  from pandas.errors import ParserError
  from pandas import DataFrame, Index, array
  import pandas._testing
label_desc: Use image node_id 23 for calling a global function with example usage: test_usecols_subset_names_mismatch_orig_columns(all_parsers, usecols, request) without return types