code: def test_half(self, device):
      half = torch.tensor(5.5, dtype=torch.float16, device=device)
      self.assertEqual((half + 2.2).dtype, torch.float16)
      self.assertEqual((half + 100000).dtype, torch.float16)  # inf
      default_tensor = torch.tensor(100000.0, device=device)
      self.assertEqual(
          (half + default_tensor).dtype, torch.get_default_dtype()
      )
  
imports: from functools import wraps
  import itertools
  import unittest
  import torch
  from torch.testing._internal.common_utils import TestCase, run_tests, load_tests, make_tensor, TEST_NUMPY, set_default_dtype, torch_to_numpy_dtype_dict, numpy_to_torch_dtype_dict, skipIfTorchDynamo
  from torch.testing._internal.common_device_type import instantiate_device_type_tests, onlyNativeDeviceTypes, dtypes, onlyCPU, expectedFailureMeta, skipMeta
  from torch.testing._internal.common_dtype import all_types_and_complex_and, get_all_math_dtypes, floating_types, get_all_dtypes, float_to_corresponding_complex_type_map
  import numpy
  import operator
label_desc: Use image node_id 10 for calling the TestTypePromotion obj's underlying member method code with example usage: obj.test_half(device) without return types