code: def test_bad_inputs(self):
      template = (
          "MACDSignal() expected a value greater than or equal to 1"
          " for argument %r, but got 0 instead."
      )
      with self.assertRaises(ValueError) as e:
          MovingAverageConvergenceDivergenceSignal(fast_period=0)
      self.assertEqual(template % "fast_period", str(e.exception))
  
      with self.assertRaises(ValueError) as e:
          MovingAverageConvergenceDivergenceSignal(slow_period=0)
      self.assertEqual(template % "slow_period", str(e.exception))
  
      with self.assertRaises(ValueError) as e:
          MovingAverageConvergenceDivergenceSignal(signal_period=0)
      self.assertEqual(template % "signal_period", str(e.exception))
  
      with self.assertRaises(ValueError) as e:
          MovingAverageConvergenceDivergenceSignal(
              fast_period=5,
              slow_period=4,
          )
  
      expected = (
          "'slow_period' must be greater than 'fast_period', but got\n"
          "slow_period=4, fast_period=5"
      )
      self.assertEqual(expected, str(e.exception))
  
imports: from __future__ import division
  from nose_parameterized import parameterized
  from six.moves import range
  import numpy
  import pandas
  import talib
  from numpy.random import RandomState
  from zipline.lib.adjusted_array import AdjustedArray
  from zipline.pipeline.data import USEquityPricing
  from zipline.pipeline.factors import BollingerBands, Aroon, FastStochasticOscillator, IchimokuKinkoHyo, LinearWeightedMovingAverage, RateOfChangePercentage, TrueRange, MovingAverageConvergenceDivergenceSignal, AnnualizedVolatility, RSI
  from zipline.testing import check_allclose, parameter_space
  from zipline.testing.fixtures import ZiplineTestCase
  from zipline.testing.predicates import assert_equal
  from .base import BaseUSEquityPipelineTestCase
label_desc: Use image node_id 3 for calling the MovingAverageConvergenceDivergenceTestCase obj's underlying member method code with example usage: obj.test_bad_inputs() without return types