class_docstr: Original VPT: https://en.wikipedia.org/wiki/Volume%E2%80%93price_trend
  One more: https://www.barchart.com/education/technical-indicators/price_volume_trend
  According to TradingView: PVT = [((CurrentClose - PreviousClose) / PreviousClose) x Volume] + PreviousPVT
  
  Smoothed version (by Alex Orekhov (everget)): https://ru.tradingview.com/script/3Ah2ALck-Price-Volume-Trend/
  His script is using `pvt` (TradingView built-in variable) as described in TradingView documentation of PVT and
  just smoothing it with ema or sma by choice.
  You can find smoothing here (13 row of script):
  `signal = signalType == "EMA" ? ema(pvt, signalLength) : sma(pvt, signalLength)`
class_docstr_tok: ["Original","VPT",":","https",":","\/\/en.wikipedia.org\/wiki\/Volume","%","E2","%","80","%","93price_trend","One","more",":","https",":","\/\/www.barchart.com\/education\/technical-indicators\/price_volume_trend","According","to","TradingView",":","PVT","=","[","(","(","CurrentClose","-","PreviousClose",")","\/","PreviousClose",")","x","Volume","]","+","PreviousPVT","Smoothed","version","(","by","Alex","Orekhov","(","everget",")",")",":","https",":","\/\/ru.tradingview.com\/script\/3Ah2ALck-Price-Volume-Trend\/","His","script","is","using","`","pvt","`","(","TradingView","built-in","variable",")","as","described","in","TradingView","documentation","of","PVT","and","just","smoothing","it","with","ema","or","sma","by","choice",".","You","can","find","smoothing","here","(","13","row","of","script",")",":","`","signal","=","signalType","==","``","EMA","''","?","ema","(","pvt",",","signalLength",")",":","sma","(","pvt",",","signalLength",")","`"]
code: def setUpClass(cls):
      cls._df = pd.read_csv(cls._filename, sep=",")
  
      # default VPT params, unsmoothed
      cls._params = {
          "close": cls._df["Close"],
          "volume": cls._df["Volume"],
          "fillna": False,
          "smoothing_factor": None,
          "dropnans": False,
      }
  
      # smoothed VPT params
      cls._params_smoothed = {
          "close": cls._df["Close"],
          "volume": cls._df["Volume"],
          "fillna": False,
          "smoothing_factor": 14,
          "dropnans": False,
      }
      cls._indicator_default = VolumePriceTrendIndicator(**cls._params)
      cls._indicator_smoothed = VolumePriceTrendIndicator(
          **cls._params_smoothed
      )
  
imports: import unittest
  import pandas
  from ta.volume import AccDistIndexIndicator, EaseOfMovementIndicator, ForceIndexIndicator, MFIIndicator, OnBalanceVolumeIndicator, VolumePriceTrendIndicator, VolumeWeightedAveragePrice, acc_dist_index, ease_of_movement, force_index, money_flow_index, on_balance_volume, sma_ease_of_movement, volume_price_trend, volume_weighted_average_price
label_desc: Use image node_id 1 for calling the TestVolumePriceTrendIndicator obj's underlying member method code with example usage: obj.setUpClass(cls) without return types