code: def test_basic_storage(self):
      X = np.random.random((100, 2))
      y = np.random.random(100) > 0.5
  
      # We keep verbose=True in order to see if value will
      # be True when we restore it from the pickle object.
      pnn = algorithms.PNN(std=0.123, verbose=True)
      pnn.train(X, y)
  
      stored_pnn = pickle.dumps(pnn)
      loaded_pnn = pickle.loads(stored_pnn)
  
      testcases = [
          ("pnn", pnn),
          ("loaded_pnn", loaded_pnn),
      ]
  
      for name, network in testcases:
          print("Test case name: {}".format(name))
  
          self.assertAlmostEqual(network.std, 0.123)
          self.assertAlmostEqual(network.verbose, True)
  
          with catch_stdout() as out:
              network.logs.stdout = out
              network.logs.write("Test message")
              terminal_output = out.getvalue()
              self.assertIn("Test message", terminal_output)
  
      pnn_prediction = pnn.predict(X)
      loaded_pnn_prediction = loaded_pnn.predict(X)
  
      np.testing.assert_array_almost_equal(
          loaded_pnn_prediction, pnn_prediction
      )
  
file_path: neupy/tests/storage/test_object_storage.py
imports: import tempfile
  import dill
  import numpy
  from sklearn import datasets, preprocessing
  from six.moves import cPickle
  from neupy import algorithms, layers, init
  from base import BaseTestCase
  from helpers import catch_stdout
label_desc: Use image node_id 3 for calling the BasicStorageTestCase obj's underlying member method code with example usage: obj.test_basic_storage() without return types