code: def test_convert_precision_str_to_dtype_success(self) -> None:
      for precision_str, expected_dtype in [
          ("fp16", torch.float16),
          ("bf16", torch.bfloat16),
          ("fp32", None),
      ]:
          with self.subTest(
              precision_str=precision_str, expected_dtype=expected_dtype
          ):
              self.assertEqual(
                  convert_precision_str_to_dtype(precision_str),
                  expected_dtype,
              )
  
file_path: tnt/tests/utils/test_precision.py
imports: import unittest
  from unittest.mock import patch
  import torch
  from torch.cuda.amp.grad_scaler import GradScaler
  from torch.distributed.fsdp.sharded_grad_scaler import ShardedGradScaler
  from torchtnt.utils.precision import convert_precision_str_to_dtype, get_grad_scaler_from_precision
label_desc: Use image node_id 1 for calling the PrecisionTest obj's underlying member method code with example usage: obj.test_convert_precision_str_to_dtype_success() without return types