code: def test_zero_step(data, ticker_list):
      # Prove that zero actions results in zero stock buys, and no price changes
      init_amt = 1e6
      env = StockTradingEnvCashpenalty(
          df=data, initial_amount=init_amt, cache_indicator_data=False
      )
      _ = env.reset()
  
      # step with all zeros
      for i in range(2):
          actions = np.zeros(len(ticker_list))
          next_state, _, _, _ = env.step(actions)
          cash = next_state[0]
          holdings = next_state[1 : 1 + len(ticker_list)]
          asset_value = env.account_information["asset_value"][-1]
          total_assets = env.account_information["total_assets"][-1]
  
          assert cash == init_amt
          assert init_amt == total_assets
  
          assert np.sum(holdings) == 0
          assert asset_value == 0
  
          assert env.current_step == i + 1
  
file_path: FinRL/unit_tests/environments/test_cash_penalty.py
imports: from __future__ import annotations
  import numpy
  import pytest
  from finrl.meta.env_stock_trading.env_stocktrading_cashpenalty import StockTradingEnvCashpenalty
  from finrl.meta.preprocessor.yahoodownloader import YahooDownloader
label_desc: Use image node_id 4 for calling a global function with example usage: test_zero_step(data, ticker_list) without return types