code: def test_rate_of_change_percentage(self, test_name, data, expected):
      window_length = len(data)
  
      rocp = RateOfChangePercentage(
          inputs=(USEquityPricing.close,),
          window_length=window_length,
      )
      today = pd.Timestamp("2014")
      assets = np.arange(5, dtype=np.int64)
      # broadcast data across assets
      data = np.array(data)[:, np.newaxis] * np.ones(len(assets))
  
      out = np.zeros(len(assets))
      rocp.compute(today, assets, out, data)
      assert_equal(out, np.full((len(assets),), expected))
  
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 1 for calling the TestRateOfChangePercentage obj's underlying member method code with example usage: obj.test_rate_of_change_percentage(test_name, data, expected) without return types