code: def test_make_dataset_feature_stats_proto(self):
      stats = {
          types.FeaturePath(["feature_1"]): {
              "Mutual Information": 0.5,
              "Correlation": 0.1,
          },
          types.FeaturePath(["feature_2"]): {
              "Mutual Information": 0.8,
              "Correlation": 0.6,
          },
      }
      expected = {
          types.FeaturePath(["feature_1"]): text_format.Parse(
              """
              path {
                step: 'feature_1'
              }
              custom_stats {
                name: 'Correlation'
                num: 0.1
              }
              custom_stats {
                name: 'Mutual Information'
                num: 0.5
              }
             """,
              statistics_pb2.FeatureNameStatistics(),
          ),
          types.FeaturePath(["feature_2"]): text_format.Parse(
              """
              path {
                step: 'feature_2'
              }
              custom_stats {
                name: 'Correlation'
                num: 0.6
              }
              custom_stats {
                name: 'Mutual Information'
                num: 0.8
              }
             """,
              statistics_pb2.FeatureNameStatistics(),
          ),
      }
      actual = stats_util.make_dataset_feature_stats_proto(stats)
      self.assertEqual(len(actual.features), len(expected))
      for actual_feature_stats in actual.features:
          compare.assertProtoEqual(
              self,
              actual_feature_stats,
              expected[
                  types.FeaturePath.from_proto(
                      actual_feature_stats.path
                  )
              ],
              normalize_numbers=True,
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl import flags
  from absl.testing import absltest
  import numpy
  import tensorflow
  from tensorflow_data_validation import types
  from tensorflow_data_validation.utils import artifacts_io_impl
  from tensorflow_data_validation.utils import stats_util
  from google.protobuf import text_format
  from tensorflow.python.util.protobuf import compare
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 5 for calling the StatsUtilTest obj's underlying member method code with example usage: obj.test_make_dataset_feature_stats_proto() without return types