def test_merge_dataset_feature_stats_protos(self):
        proto1 = text_format.Parse(
            """
        num_examples: 7
        features: {
          name: 'feature1'
          type: STRING
          string_stats: {
            common_stats: {
              num_missing: 3
              num_non_missing: 4
              min_num_values: 1
              max_num_values: 1
            }
          }
        }
        """, statistics_pb2.DatasetFeatureStatistics())

        proto2 = text_format.Parse(
            """
        features: {
          name: 'feature1'
          type: STRING
          string_stats: {
            unique: 3
          }
        }
        """, statistics_pb2.DatasetFeatureStatistics())

        expected = text_format.Parse(
            """
        num_examples: 7
        features: {
          name: 'feature1'
          type: STRING
          string_stats: {
            common_stats: {
              num_missing: 3
              num_non_missing: 4
              min_num_values: 1
              max_num_values: 1
            }
            unique: 3
          }
        }
        """, statistics_pb2.DatasetFeatureStatistics())

        actual = stats_impl._merge_dataset_feature_stats_protos(
            [proto1, proto2])
        self.assertEqual(actual, expected)
 def test_merge_dataset_feature_stats_protos_empty(self):
   self.assertEqual(stats_impl._merge_dataset_feature_stats_protos([]),
                    statistics_pb2.DatasetFeatureStatistics())