code: def test_evaluator_mutable_nested():
      @nni.trace
      class FooClass:
          def __init__(self, a):
              self.a = a
  
      obj = FooClass(Categorical([1, 2, 3], label="t"))
  
      def foo():
          pass
  
      evaluator = FunctionalEvaluator(
          foo,
          t=obj,
          v=Categorical([1, 2, 3], label="t")
          + Categorical([10, 20, 30]),
      )
      assert len(evaluator.simplify()) == 2
      for _ in range(10):
          evaluator1 = evaluator.random()
          a, v = (
              evaluator1.trace_kwargs["t"].trace_kwargs["a"],
              evaluator1.trace_kwargs["v"],
          )
          assert v % 10 == a
          assert a in [1, 2, 3]
          assert v // 10 in [1, 2, 3]
  
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 8 for calling a global function with example usage: test_evaluator_mutable_nested() without return types