code: def test_build_table_schema(self):
      df = DataFrame(
          {
              "A": DateArray([dt.date(2021, 10, 10)]),
              "B": DecimalArray([decimal.Decimal(10)]),
              "C": array(["pandas"], dtype="string"),
              "D": array([10], dtype="Int64"),
          }
      )
      result = build_table_schema(df, version=False)
      expected = {
          "fields": [
              {"name": "index", "type": "integer"},
              {"name": "A", "type": "any", "extDtype": "DateDtype"},
              {"name": "B", "type": "number", "extDtype": "decimal"},
              {"name": "C", "type": "any", "extDtype": "string"},
              {"name": "D", "type": "integer", "extDtype": "Int64"},
          ],
          "primaryKey": ["index"],
      }
      assert result == expected
      result = build_table_schema(df)
      assert "pandas_version" in result
  
imports: from collections import OrderedDict
  import datetime
  import decimal
  from io import StringIO
  import json
  import pytest
  from pandas import NA, DataFrame, Index, array, read_json
  import pandas._testing
  from pandas.core.arrays.integer import Int64Dtype
  from pandas.core.arrays.string_ import StringDtype
  from pandas.core.series import Series
  from pandas.tests.extension.date import DateArray, DateDtype
  from pandas.tests.extension.decimal.array import DecimalArray, DecimalDtype
  from pandas.io.json._table_schema import as_json_table_type, build_table_schema
label_desc: Use image node_id 1 for calling the TestBuildSchema obj's underlying member method code with example usage: obj.test_build_table_schema() without return types