docstr: Check that ZeroRedundancyOptimizer raises an exception if the input
  parameters include sparse tensors or different dense types.
  
  NOTE: This test should be removed once support for sparse parameters
  and varying parameter types is added.
docstr_tok: ["Check","that","ZeroRedundancyOptimizer","raises","an","exception","if","the","input","parameters","include","sparse","tensors","or","different","dense","types",".","NOTE",":","This","test","should","be","removed","once","support","for","sparse","parameters","and","varying","parameter","types","is","added","."]
code: def test_same_dense_param_type(self):
      """Check that ZeroRedundancyOptimizer raises an exception if the input
      parameters include sparse tensors or different dense types.
  
      NOTE: This test should be removed once support for sparse parameters
      and varying parameter types is added.
      """
      self.dist_init(self.rank)
      LR = 0.01
      inputs = [
          [torch.sparse_coo_tensor(size=(2, 3))],
          [torch.FloatTensor(1), torch.DoubleTensor(1)],
          [
              torch.FloatTensor(1),
              torch.FloatTensor(1),
              torch.sparse_coo_tensor(size=(2, 3)),
          ],
      ]
      for input in inputs:
          with self.assertRaises(ValueError):
              ZeroRedundancyOptimizer(input, optimizer_class=SGD, lr=LR)
  
imports: import copy
  import os
  import sys
  import unittest
  from contextlib import nullcontext
  from typing import Any, cast, List
  import numpy
  import torch
  import torch.distributed
  from torch.distributed.algorithms.ddp_comm_hooks.ddp_zero_hook import hook_with_zero_step, hook_with_zero_step_interleaved
  from torch.distributed.algorithms.ddp_comm_hooks.default_hooks import allreduce_hook
  from torch.distributed.algorithms.join import Join, Joinable, JoinHook
  from torch.distributed.optim import ZeroRedundancyOptimizer
  from torch.distributed.optim.zero_redundancy_optimizer import _broadcast_object
  from torch.nn.parallel import DistributedDataParallel
  from torch.optim import AdamW, SGD
  from torch.testing._internal import common_distributed
  from torch.testing._internal.common_utils import instantiate_parametrized_tests, IS_WINDOWS, parametrize, run_tests, TEST_WITH_ASAN, TEST_WITH_DEV_DBG_ASAN
label_desc: Use image node_id 8 for calling the TestZeroRedundancyOptimizerSingleRank obj's underlying member method code with example usage: obj.test_same_dense_param_type() without return types