code: def test_recursive_definition(self):
      experiment = {
          "demo": {
              "_name": "Demo",
              "demo2": {"_name": "DemoWithStr", "strval": "foo"},
              "demo3": {"_name": "DemoWithInt", "intval": 2},
          }
      }
      e = ExperimentConfig(experiment)
      self.assertIsInstance(e.experiment["demo"].demo2, DemoWithStr)
      self.assertIsInstance(e.experiment["demo"].demo3, DemoWithInt)
      self.assertEqual(e.experiment["demo"].demo2.strval, "foo")
      self.assertEqual(e.experiment["demo"].demo3.intval, 2)
  
imports: import unittest
  from pathlib import Path
  from typing import Any, Dict, List
  from transfer_nlp.plugins.config import CallableInstantiationError, ExperimentConfig, LoopInConfigError, UnknownPluginException, UnknownReferenceError, register_plugin
label_desc: Use image node_id 6 for calling the RegistryTest obj's underlying member method code with example usage: obj.test_recursive_definition() without return types