code: def test_from_arrowtest_from_arrow_with_different_units_and_timezones_with_(
      pa_unit, pd_unit, pa_tz, pd_tz, data
  ):
      pa = pytest.importorskip("pyarrow")
  
      pa_type = pa.timestamp(pa_unit, tz=pa_tz)
      arr = pa.array(data, type=pa_type)
      dtype = DatetimeTZDtype(unit=pd_unit, tz=pd_tz)
  
      result = dtype.__from_arrow__(arr)
      expected = DatetimeArray._from_sequence(
          np.array(data, dtype=f"datetime64[{pa_unit}]").astype(
              f"datetime64[{pd_unit}]"
          ),
          dtype=dtype,
      )
      tm.assert_extension_array_equal(result, expected)
  
      result = dtype.__from_arrow__(pa.chunked_array([arr]))
      tm.assert_extension_array_equal(result, expected)
  
imports: import numpy
  import pytest
  from pandas._libs import iNaT
  from pandas.core.dtypes.dtypes import DatetimeTZDtype
  import pandas
  import pandas._testing
  from pandas.core.arrays import DatetimeArray
label_desc: Use image node_id 1 for calling a global function with example usage: test_from_arrowtest_from_arrow_with_different_units_and_timezones_with_(pa_unit, pd_unit, pa_tz, pd_tz, data) without return types