code: def test_functional_nested(capsys):
      evaluator = FunctionalEvaluator(
          _print_params,
          a=custom_function(1, Numerical(0, 1, label="x")),
          b=custom_class(
              Categorical([3, 4], label="y"),
              Categorical([5, 6], label="z"),
          ),
      )
  
      evaluator = evaluator.freeze({"x": 0.5, "y": 3, "z": 6})
      assert isinstance(evaluator, FrozenEvaluator)
      with pytest.raises(AttributeError):
          evaluator.trace_kwargs["b"].func()
      assert evaluator.get().arguments["a"] == 1.5
      assert evaluator.get().arguments["b"].func() == 10
  
      evaluator.evaluate(None)
      assert capsys.readouterr().out == "1.5 c 9\n"
  
imports: import re
  import sys
  import pytest
  import nni
  import nni.trial
  import torch
  import pytorch_lightning
  from nni.mutable import Categorical, Numerical, SampleValidationError
  from nni.mutable.mutable import _mutable_equal
  from nni.nas.evaluator import FunctionalEvaluator
  from nni.nas.evaluator.pytorch import Classification, Lightning, DataLoader, Trainer, LightningModule
  from nni.nas.evaluator.evaluator import FrozenEvaluator
  from torch import nn
  from torch.utils.data import TensorDataset
label_desc: Use image node_id 5 for calling a global function with example usage: test_functional_nested(capsys) without return types