def METHOD_NAME(self):
    """
    Tests that both user-facing parameter/gradient dtypes and internal
    saved dtype attributes are as expected when using an FP16 model
    possibly with explicit mixed precision enabled.
    """
    self.run_subtests(
        {
            "to_half_before_fsdp_init": [False, True],
            "use_orig_params": [False, True],
            "mixed_precision": [
                MixedPrecision(),
                MixedPrecision(
                    param_dtype=torch.float16,
                    reduce_dtype=torch.float32,
                ),
                MixedPrecision(
                    param_dtype=torch.float32,
                ),
            ],
        },
        self._test_fp16_dtypes,
    )