code: def test_dict_inputs(self):
      inputs = {
          "x": np.random.random((40, 4)),
          "y": np.random.random((40, 2)),
      }
      py_dataset = DictPyDataset(inputs, batch_size=4)
      adapter = py_dataset_adapter.PyDatasetAdapter(
          py_dataset, shuffle=False
      )
      gen = adapter.get_numpy_iterator()
      for batch in gen:
          self.assertEqual(len(batch), 2)
          bx, by = batch["x"], batch["y"]
          self.assertIsInstance(bx, np.ndarray)
          self.assertIsInstance(by, np.ndarray)
          self.assertEqual(bx.dtype, by.dtype)
          self.assertEqual(bx.shape, (4, 4))
          self.assertEqual(by.shape, (4, 2))
  
      ds = adapter.get_tf_dataset()
      for batch in ds:
          self.assertEqual(len(batch), 2)
          bx, by = batch["x"], batch["y"]
          self.assertIsInstance(bx, tf.Tensor)
          self.assertIsInstance(by, tf.Tensor)
          self.assertEqual(bx.dtype, by.dtype)
          self.assertEqual(tuple(bx.shape), (4, 4))
          self.assertEqual(tuple(by.shape), (4, 2))
  
imports: import math
  import time
  import numpy
  import tensorflow
  from absl.testing import parameterized
  from keras import testing
  from keras.trainers.data_adapters import py_dataset_adapter
  from keras.utils.rng_utils import set_random_seed
label_desc: Use image node_id 3 for calling the PyDatasetAdapterTest obj's underlying member method code with example usage: obj.test_dict_inputs() without return types