code: def test_string_method():
      s = pd.Series(["a", "b", "c"], name="s")
      series = from_pandas_series(s, chunk_size=2)
  
      with pytest.raises(AttributeError):
          _ = series.str.non_exist
  
      r = series.str.contains("c")
      assert r.dtype == np.bool_
      assert r.name == s.name
      pd.testing.assert_index_equal(r.index_value.to_pandas(), s.index)
      assert r.shape == s.shape
  
      r = tile(r)
      for i, c in enumerate(r.chunks):
          assert c.index == (i,)
          assert c.dtype == np.bool_
          assert c.name == s.name
          pd.testing.assert_index_equal(
              c.index_value.to_pandas(), s.index[i * 2 : (i + 1) * 2]
          )
          assert c.shape == (2,) if i == 0 else (1,)
  
      r = series.str.split(",", expand=True, n=1)
      assert r.op.output_types[0] == OutputType.dataframe
      assert r.shape == (3, 2)
      pd.testing.assert_index_equal(r.index_value.to_pandas(), s.index)
      pd.testing.assert_index_equal(
          r.columns_value.to_pandas(), pd.RangeIndex(2)
      )
  
      r = tile(r)
      for i, c in enumerate(r.chunks):
          assert c.index == (i, 0)
          pd.testing.assert_index_equal(
              c.index_value.to_pandas(), s.index[i * 2 : (i + 1) * 2]
          )
          pd.testing.assert_index_equal(
              c.columns_value.to_pandas(), pd.RangeIndex(2)
          )
          assert c.shape == (2, 2) if i == 0 else (1, 2)
  
      with pytest.raises(TypeError):
          _ = series.str.cat([["1", "2"]])
  
      with pytest.raises(ValueError):
          _ = series.str.cat(["1", "2"])
  
      with pytest.raises(ValueError):
          _ = series.str.cat(",")
  
      with pytest.raises(TypeError):
          _ = series.str.cat({"1", "2", "3"})
  
      r = series.str.cat(sep=",")
      assert r.op.output_types[0] == OutputType.scalar
      assert r.dtype == s.dtype
  
      r = tile(r)
      assert len(r.chunks) == 1
      assert r.chunks[0].op.output_types[0] == OutputType.scalar
      assert r.chunks[0].dtype == s.dtype
  
      r = series.str.extract(r"[ab](\d)", expand=False)
      assert r.op.output_types[0] == OutputType.series
      assert r.dtype == s.dtype
  
      r = tile(r)
      for i, c in enumerate(r.chunks):
          assert c.index == (i,)
          assert c.dtype == s.dtype
          assert c.name == s.name
          pd.testing.assert_index_equal(
              c.index_value.to_pandas(), s.index[i * 2 : (i + 1) * 2]
          )
          assert c.shape == (2,) if i == 0 else (1,)
  
      r = series.str.extract(r"[ab](\d)", expand=True)
      assert r.op.output_types[0] == OutputType.dataframe
      assert r.shape == (3, 1)
      pd.testing.assert_index_equal(r.index_value.to_pandas(), s.index)
      pd.testing.assert_index_equal(
          r.columns_value.to_pandas(), pd.RangeIndex(1)
      )
  
      r = tile(r)
      for i, c in enumerate(r.chunks):
          assert c.index == (i, 0)
          pd.testing.assert_index_equal(
              c.index_value.to_pandas(), s.index[i * 2 : (i + 1) * 2]
          )
          pd.testing.assert_index_equal(
              c.columns_value.to_pandas(), pd.RangeIndex(1)
          )
          assert c.shape == (2, 1) if i == 0 else (1, 1)
  
      assert "lstrip" in dir(series.str)
  
imports: from typing import List, Union
  import numpy
  import pandas
  import pytest
  from ....None import opcodes
  from ....config import options, option_context
  from ....core import OutputType, tile, Tileable
  from ....core.graph import TileableGraph, TileableGraphBuilder, TileContext, ChunkGraphBuilder
  from ....core.operand import OperandStage
  from ....tensor.core import TENSOR_TYPE
  from ...None import eval, cut, get_dummies, to_numeric
  from ...core import DATAFRAME_TYPE, SERIES_TYPE, SERIES_CHUNK_TYPE, INDEX_TYPE, CATEGORICAL_TYPE, CATEGORICAL_CHUNK_TYPE, DataFrameData, SeriesData
  from ...datasource.dataframe import from_pandas
  from ...datasource.series import from_pandas
  from ...datasource.index import from_pandas
  from ..None import to_gpu, to_cpu, astype
label_desc: Use image node_id 8 for calling a global function with example usage: test_string_method() without return types