code: def testProtoFromDataFrames(self):
      data = [[1, "hi"], [2, "hello"], [3, "hi"]]
      df = pd.DataFrame(
          data, columns=["testFeatureInt", "testFeatureString"]
      )
      dataframes = [{"table": df, "name": "testDataset"}]
      p = self.gfsg.ProtoFromDataFrames(dataframes)
  
      self.assertEqual(1, len(p.datasets))
      test_data = p.datasets[0]
      self.assertEqual("testDataset", test_data.name)
      self.assertEqual(3, test_data.num_examples)
      self.assertEqual(2, len(test_data.features))
  
      if test_data.features[0].name == "testFeatureInt":
          numfeat = test_data.features[0]
          stringfeat = test_data.features[1]
      else:
          numfeat = test_data.features[1]
          stringfeat = test_data.features[0]
  
      self.assertEqual("testFeatureInt", numfeat.name)
      self.assertEqual(self.gfsg.fs_proto.INT, numfeat.type)
      self.assertEqual(1, numfeat.num_stats.min)
      self.assertEqual(3, numfeat.num_stats.max)
      self.assertEqual("testFeatureString", stringfeat.name)
      self.assertEqual(self.gfsg.fs_proto.STRING, stringfeat.type)
      self.assertEqual(2, stringfeat.string_stats.unique)
  
file_path: facets/facets_overview/facets_overview/generic_feature_statistics_generator_test.py
imports: from facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator
  import numpy
  import pandas
  from tensorflow.python.platform import googletest
label_desc: Use image node_id 2 for calling the GenericFeatureStatisticsGeneratorTest obj's underlying member method code with example usage: obj.testProtoFromDataFrames() without return types