code: def test_EnumerateDiscreteCombinations(self) -> None:
      dc1 = {1: [0, 1, 2]}
      # pyre-fixme[6]: For 1st param expected `Dict[int, List[Union[float, int]]]`
      #  but got `Dict[int, List[int]]`.
      dc1_enum = enumerate_discrete_combinations(dc1)
      self.assertEqual(dc1_enum, [{1: 0}, {1: 1}, {1: 2}])
      dc2 = {1: [0, 1, 2], 2: [3, 4]}
      # pyre-fixme[6]: For 1st param expected `Dict[int, List[Union[float, int]]]`
      #  but got `Dict[int, List[int]]`.
      dc2_enum = enumerate_discrete_combinations(dc2)
      self.assertEqual(
          dc2_enum,
          [
              {1: 0, 2: 3},
              {1: 0, 2: 4},
              {1: 1, 2: 3},
              {1: 1, 2: 4},
              {1: 2, 2: 3},
              {1: 2, 2: 4},
          ],
      )
  
file_path: Ax/ax/models/tests/test_model_utils.py
imports: from itertools import product
  from unittest.mock import MagicMock
  import numpy
  from ax.core.search_space import SearchSpaceDigest
  from ax.models.model_utils import best_observed_point, check_duplicate, enumerate_discrete_combinations, mk_discrete_choices
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 5 for calling the ModelUtilsTest obj's underlying member method code with example usage: obj.test_EnumerateDiscreteCombinations() without return types