code: def test_invocation(self):
      X_2D = self.X_train[:, 0:2]
      X_3D = self.X_train[:, 0:3]
      X_4D = self.X_train
  
      with assert_raises(IndexError):
          rod_3D(X_2D)
      scores = ROD().fit(X_2D).decision_scores_
      assert_array_equal(
          scores,
          rod_3D(
              np.hstack(
                  (
                      X_2D,
                      np.zeros(
                          shape=(X_2D.shape[0], 3 - X_2D.shape[1])
                      ),
                  )
              )
          )[0],
      )
      scores = ROD().fit(X_3D).decision_scores_
      assert_array_equal(scores, rod_3D(X_3D)[0])
      scores = ROD().fit(X_4D).decision_scores_
      assert_array_equal(
          scores,
          rod_nD(
              X_4D,
              False,
              self.gm,
              self.data_scaler,
              self.angles_scalers1,
              self.angles_scalers2,
          )[0],
      )
  
imports: from __future__ import division
  from __future__ import print_function
  import os
  import sys
  import unittest
  import numpy
  from numpy.testing import *
  from numpy.testing import assert_array_less
  from numpy.testing import assert_equal
  from numpy.testing import assert_raises
  from sklearn.base import clone
  from scipy.stats import rankdata
  from pyod.models.rod import ROD, rod_3D, rod_nD, angle, sigmoid, process_sub, mad
  from pyod.utils.data import generate_data
label_desc: Use image node_id 13 for calling the TestROD obj's underlying member method code with example usage: obj.test_invocation() without return types