code: def test_predict_probability(self):
      dataset = datasets.load_digits()
      x_train, x_test, y_train, y_test = train_test_split(
          dataset.data, dataset.target, test_size=0.3
      )
  
      x_train_before = x_train.copy()
      x_test_before = x_test.copy()
      y_train_before = y_train.copy()
  
      number_of_classes = len(np.unique(dataset.target))
  
      pnnet = algorithms.PNN(verbose=False, std=10)
      pnnet.train(x_train, y_train)
      result = pnnet.predict_proba(x_test)
  
      n_test_inputs = x_test.shape[0]
      self.assertEqual(result.shape, (n_test_inputs, number_of_classes))
  
      total_classes_prob = np.round(result.sum(axis=1), 10)
      np.testing.assert_array_equal(
          total_classes_prob, np.ones(n_test_inputs)
      )
  
      old_result = result.copy()
  
      # Test problem with variable links
      np.testing.assert_array_equal(x_train, x_train_before)
      np.testing.assert_array_equal(x_test, x_test_before)
      np.testing.assert_array_equal(y_train, y_train_before)
  
      x_train[:, :] = 0
      result = pnnet.predict_proba(x_test)
      total_classes_prob = np.round(result.sum(axis=1), 10)
      np.testing.assert_array_almost_equal(result, old_result)
  
file_path: neupy/tests/algorithms/rbfn/test_pnn.py
imports: from __future__ import division
  import numpy
  from sklearn import datasets
  from sklearn import metrics
  from sklearn.model_selection import StratifiedKFold, train_test_split
  from neupy import algorithms
  from neupy.exceptions import NotTrained
  from base import BaseTestCase
label_desc: Use image node_id 4 for calling the PNNTestCase obj's underlying member method code with example usage: obj.test_predict_probability() without return types