code: def test_table_symmetric_string_schema(self):
      data = {
          "a": [1, 2, 3],
          "b": [1.5, 2.5, 3.5],
          "c": ["a", "b", "c"],
          "d": [True, False, True],
          "e": [date.today(), date.today(), date.today()],
          "f": [datetime.now(), datetime.now(), datetime.now()],
      }
  
      tbl = Table(data)
      schema = tbl.schema(as_string=True)
  
      assert schema == {
          "a": "integer",
          "b": "float",
          "c": "string",
          "d": "boolean",
          "e": "date",
          "f": "datetime",
      }
  
      tbl2 = Table(schema)
  
      assert tbl2.schema(as_string=True) == schema
  
imports: import sys
  from datetime import date, datetime
  from perspective.core.exception import PerspectiveError
  from perspective.table import Table
  from perspective.table._state import _PerspectiveStateManager
  from perspective.table.libpsppy import PerspectiveCppError, t_filter_op
  from pytest import raises
label_desc: Use image node_id 29 for calling the TestTable obj's underlying member method code with example usage: obj.test_table_symmetric_string_schema() without return types