code: def testBoundedFilter(self):
      values = [
          22.2734,
          22.1940,
          22.0847,
          22.1741,
          22.1840,
          22.1344,
          22.2337,
          22.4323,
          22.2436,
          22.2933,
          22.1542,
          22.3926,
          22.3816,
          22.6109,
          23.3558,
          24.0519,
          23.7530,
          23.8324,
          23.9516,
          23.6338,
          23.8225,
          23.8722,
          23.6537,
          23.1870,
          23.0976,
          23.3260,
          22.6805,
          23.0976,
          22.4025,
          22.1725,
      ]
  
      seqDS = dataseries.SequenceDataSeries()
      ema = ma.EMA(seqDS, 10, 2)
      for value in values:
          seqDS.append(value)
  
      self.assertEqual(round(ema[0], 5), 23.08068)
      self.assertEqual(round(ema[1], 5), 22.91556)
      self.assertEqual(len(ema), 2)
      self.assertEqual(len(ema[:]), 2)
      self.assertEqual(len(ema.getDateTimes()), 2)
  
imports: from six.moves import xrange
  from .None import common
  from pyalgotrade.technical import ma
  from pyalgotrade import dataseries
  from pyalgotrade.barfeed import ninjatraderfeed
  from pyalgotrade import bar
label_desc: Use image node_id 3 for calling the EMATestCase obj's underlying member method code with example usage: obj.testBoundedFilter() without return types