code: def test_storage_save_dict(self):
      network = layers.join(
          layers.parallel(
              [
                  layers.Input(2, name="input-1"),
                  layers.PRelu(1, name="prelu"),
              ],
              [
                  layers.Input(1, name="input-2"),
                  layers.Sigmoid(4, name="sigmoid"),
                  layers.BatchNorm(name="batch-norm"),
              ],
          ),
          layers.Concatenate(name="concatenate"),
          layers.Softmax(3, name="softmax"),
      )
      dict_network = storage.save_dict(network)
  
      expected_keys = ("metadata", "layers", "graph")
      self.assertItemsEqual(expected_keys, dict_network.keys())
  
      expected_metadata_keys = (
          "created",
          "language",
          "library",
          "version",
      )
      actual_metadata_keys = dict_network["metadata"].keys()
      self.assertItemsEqual(
          expected_metadata_keys, actual_metadata_keys
      )
  
      self.assertEqual(len(dict_network["layers"]), 7)
  
      expected_layers = [
          {
              "class_name": "Input",
              "configs": {"name": "input-1", "shape": (2,)},
              "name": "input-1",
          },
          {
              "class_name": "PRelu",
              "configs": {
                  "alpha_axes": (-1,),
                  "name": "prelu",
                  "n_units": 1,
              },
              "name": "prelu",
          },
          {
              "class_name": "Input",
              "configs": {"name": "input-2", "shape": (1,)},
              "name": "input-2",
          },
          {
              "class_name": "Sigmoid",
              "configs": {"name": "sigmoid", "n_units": 4},
              "name": "sigmoid",
          },
          {
              "class_name": "BatchNorm",
              "configs": {
                  "alpha": 0.1,
                  "axes": (0,),
                  "epsilon": 1e-05,
                  "name": "batch-norm",
              },
              "name": "batch-norm",
          },
          {
              "class_name": "Concatenate",
              "configs": {"axis": -1, "name": "concatenate"},
              "name": "concatenate",
          },
          {
              "class_name": "Softmax",
              "configs": {"name": "softmax", "n_units": 3},
              "name": "softmax",
          },
      ]
      actual_layers = []
      for i, layer in enumerate(dict_network["layers"]):
          self.assertIn("parameters", layer, msg="Layer #" + str(i))
  
          layer = copy.deepcopy(layer)
          del layer["parameters"]
          actual_layers.append(layer)
  
      self.assertEqual(actual_layers, expected_layers)
  
imports: import copy
  import numpy
  from neupy.utils import asfloat
  from neupy import layers, storage
  from neupy.storage import validate_data_structure, InvalidFormat, ParameterLoaderError, load_layer_parameter
  from base import BaseTestCase
label_desc: Use image node_id 2 for calling the DictStorageTestCase obj's underlying member method code with example usage: obj.test_storage_save_dict() without return types