code: def test_get_avg_cache_load_factor_hbm(self) -> None:
      cache_load_factors = [random.random() for _ in range(5)]
      embedding_tables: List[ShardedEmbeddingTable] = [
          ShardedEmbeddingTable(
              num_embeddings=1000,
              embedding_dim=MagicMock(),
              fused_params={"cache_load_factor": cache_load_factor},
          )
          for cache_load_factor in cache_load_factors
      ]
  
      weighted_avg_cache_load_factor = (
          _get_weighted_avg_cache_load_factor(embedding_tables)
      )
      self.assertIsNone(weighted_avg_cache_load_factor)
  
imports: import random
  import unittest
  from typing import Any, Dict, List
  from unittest.mock import MagicMock
  import hypothesis.strategies
  from hypothesis import given, settings
  from torchrec.distributed.embedding_lookup import EmbeddingComputeKernel
  from torchrec.distributed.embedding_sharding import _get_compute_kernel_type, _get_grouping_fused_params, _get_weighted_avg_cache_load_factor, group_tables
  from torchrec.distributed.embedding_types import GroupedEmbeddingConfig, ShardedEmbeddingTable
  from torchrec.modules.embedding_configs import DataType, PoolingType
label_desc: Use image node_id 1 for calling the TestGetWeightedAverageCacheLoadFactor obj's underlying member method code with example usage: obj.test_get_avg_cache_load_factor_hbm() without return types