code: def test_dict_of_registrables(self):
      experiment = {
          "first_object": {"_name": "DemoWithVal", "val": 2},
          "dict_of_objects": {
              "first_object": {"_name": "DemoWithVal", "val": 1},
              "second_object": {
                  "_name": "DemoWithStr",
                  "strval": "foo",
              },
              "simple_object": 1,
              "last_object": "$first_object",
          },
      }
  
      e = ExperimentConfig(experiment)
      self.assertEqual(e["dict_of_objects"]["first_object"].val, 1)
      self.assertEqual(
          e["dict_of_objects"]["second_object"].strval, "foo"
      )
      self.assertEqual(e["dict_of_objects"]["simple_object"], 1)
      self.assertEqual(e["dict_of_objects"]["last_object"].val, 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 1 for calling the RegistryTest obj's underlying member method code with example usage: obj.test_dict_of_registrables() without return types