code: def test_get_stats(self):
      tmp = np.array([1, np.nan, 2, 3, np.nan, np.nan])
      self.assertEqual(1, PreprocessingUtils.get_min(tmp))
      self.assertEqual(2, PreprocessingUtils.get_mean(tmp))
      self.assertEqual(2, PreprocessingUtils.get_median(tmp))
      d = {
          "col1": [1, 2, 1, 3, 1, np.nan],
          "col2": ["a", np.nan, "b", "a", "c", "a"],
      }
      df = pd.DataFrame(data=d)
      self.assertEqual(1, PreprocessingUtils.get_min(df["col1"]))
      self.assertEqual(
          8.0 / 5.0, PreprocessingUtils.get_mean(df["col1"])
      )
      self.assertEqual(1, PreprocessingUtils.get_median(df["col1"]))
  
      self.assertEqual(
          1, PreprocessingUtils.get_most_frequent(df["col1"])
      )
      self.assertEqual(
          "a", PreprocessingUtils.get_most_frequent(df["col2"])
      )
  
file_path: mljar-supervised/tests/tests_preprocessing/test_preprocessing_utils.py
imports: import unittest
  import numpy
  import pandas
  from supervised.preprocessing.preprocessing_utils import PreprocessingUtils
label_desc: Use image node_id 5 for calling the PreprocessingUtilsTest obj's underlying member method code with example usage: obj.test_get_stats() without return types