code: def test_get_schema_dataframe(self):
      schema = text_format.Parse(
          """
          feature {
            name: "fa"
            type: INT
            int_domain {
              is_categorical: true
            }
          }
          feature {
            name: "fb"
            type: BYTES
          }
          feature {
            name: "fc"
            type: FLOAT
          }
          string_domain {
            name: "timezone"
            value: "America/Los_Angeles"
          }
          """,
          schema_pb2.Schema(),
      )
      (
          actual_features,
          actual_domains,
      ) = display_util.get_schema_dataframe(schema)
      # The resulting features DataFrame has a row for each feature and columns
      # for type, presence, valency, and domain.
      self.assertEqual(actual_features.shape, (3, 4))
      # The resulting domain DataFrame has a row for each domain and a column for
      # domain values.
      self.assertEqual(actual_domains.shape, (1, 1))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from typing import Any, Dict
  from absl.testing import absltest
  from absl.testing import parameterized
  from google.protobuf import text_format
  import pandas
  from tensorflow_data_validation import constants
  from tensorflow_data_validation import types
  from tensorflow_data_validation.skew.protos import feature_skew_results_pb2
  from tensorflow_data_validation.utils import display_util
  from tensorflow_data_validation.utils import test_util
  from tensorflow_metadata.proto.v0 import anomalies_pb2
  from tensorflow_metadata.proto.v0 import schema_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 7 for calling the DisplayUtilTest obj's underlying member method code with example usage: obj.test_get_schema_dataframe() without return types