code: def test_step_full_precision_inferred():
      weight, bias, input = make_full_precision_params()
      optimizer = Adam([weight, bias], lr=1e-3)
  
      step_test(optimizer, weight, bias, input)
  
      for group in optimizer.param_groups:
          for p in group["params"]:
              if p.requires_grad:
                  assert p.dtype == torch.float32
      assert not optimizer.fp32_param_groups
  
      assert optimizer.state[weight]["exp_avg"].dtype == torch.float32
      assert (
          optimizer.state[weight]["exp_avg_sq"].dtype == torch.float32
      )
      assert optimizer.state[bias]["exp_avg"].dtype == torch.float32
      assert optimizer.state[bias]["exp_avg_sq"].dtype == torch.float32
  
imports: from copy import deepcopy
  import functools
  import pytest
  import torch
label_desc: Use image node_id 7 for calling a global function with example usage: test_step_full_precision_inferred() without return types