code: def test_defaults(self):
      experiment = {
          "demoa": {
              "_name": "DemoDefaults",
              "strval": "a",
          },
          "demob": {
              "_name": "DemoDefaults",
              "strval": "b",
              "intval1": 1,
          },
          "democ": {
              "_name": "DemoDefaults",
              "strval": "c",
              "intval2": 2,
          },
          "demod": {
              "_name": "DemoDefaults",
              "strval": "d",
              "intval1": 3,
              "intval2": 4,
          },
          "demoe": {
              "_name": "DemoDefaults",
              "strval": "e",
              "intval1": None,
              "intval2": None,
          },
      }
      e = ExperimentConfig(experiment)
  
      for c in "abcde":
          self.assertTrue(isinstance(e[f"demo{c}"], DemoDefaults))
          self.assertEqual(e[f"demo{c}"].strval, c)
  
      self.assertEqual(e["demoa"].intval1, 5)
      self.assertEqual(e["demoa"].intval2, None)
  
      self.assertEqual(e["demob"].intval1, 1)
      self.assertEqual(e["demob"].intval2, None)
  
      self.assertEqual(e["democ"].intval1, 5)
      self.assertEqual(e["democ"].intval2, 2)
  
      self.assertEqual(e["demod"].intval1, 3)
      self.assertEqual(e["demod"].intval2, 4)
  
      self.assertEqual(e["demoe"].intval1, None)
      self.assertEqual(e["demoe"].intval2, None)
  
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 12 for calling the RegistryTest obj's underlying member method code with example usage: obj.test_defaults() without return types