code: def test_geometric_mean(self):
      returns = pandas_ta.percent_return(self.data.close)
      result = self.utils.geometric_mean(returns)
      self.assertIsInstance(result, float)
  
      result = self.utils.geometric_mean(Series([12, 14, 11, 8]))
      self.assertIsInstance(result, float)
  
      result = self.utils.geometric_mean(
          Series([100, 50, 0, 25, 0, 60])
      )
      self.assertIsInstance(result, float)
  
      series = Series([0, 1, 2, 3])
      result = self.utils.geometric_mean(series)
      self.assertIsInstance(result, float)
  
      result = self.utils.geometric_mean(-series)
      self.assertIsInstance(result, int)
      self.assertAlmostEqual(result, 0)
  
imports: from .config import sample_data
  from .context import pandas_ta
  from unittest import skip, TestCase
  from unittest.mock import patch
  import numpy
  import numpy.testing
  from pandas import DataFrame, Series
  from pandas.api.types import is_datetime64_ns_dtype, is_datetime64tz_dtype
label_desc: Use image node_id 20 for calling the TestUtilities obj's underlying member method code with example usage: obj.test_geometric_mean() without return types