code: def test_to_arrow_str_dict(self):
      data = {
          "a": ["abcdefg", "abcdefg", "h"],
          "b": ["aaa", "bbb", "bbb"],
          "c": ["hello", "world", "world"],
      }
      tbl = Table(data)
      assert tbl.schema() == {"a": str, "b": str, "c": str}
      arr = tbl.view().to_arrow()
  
      # assert that we are actually generating dict arrays
      buf = pa.BufferReader(arr)
      reader = pa.ipc.open_stream(buf)
      arrow_table = reader.read_all()
      arrow_schema = arrow_table.schema
  
      for name in ("a", "b", "c"):
          arrow_type = arrow_schema.field(name).type
          assert pa.types.is_dictionary(arrow_type)
  
      # assert that data is symmetrical
      tbl2 = Table(arr)
      assert tbl2.view().to_dict() == data
  
imports: import pyarrow
  from datetime import date, datetime
  from perspective import Table
label_desc: Use image node_id 5 for calling the TestToArrow obj's underlying member method code with example usage: obj.test_to_arrow_str_dict() without return types