code: def assert_info(
      batch_deltas,
      n_steps,
      batch_size,
      p_red_act,
      p_blue_act,
      env,
      grid_size,
      n_steps_in_epi,
      p_red_pos,
      p_blue_pos,
      c_red_pos,
      c_blue_pos,
      red_speed,
      blue_speed,
      red_own,
      blue_own,
  ):
      step_i = 0
  
      for _ in range(n_steps):
          overwrite_pos(
              step_i,
              batch_deltas,
              n_steps_in_epi,
              env,
              p_red_pos,
              p_blue_pos,
              c_red_pos,
              c_blue_pos,
          )
          actions = {
              "player_red": [
                  p_red_act[(step_i + delta) % n_steps_in_epi]
                  for delta in batch_deltas
              ],
              "player_blue": [
                  p_blue_act[(step_i + delta) % n_steps_in_epi]
                  for delta in batch_deltas
              ],
          }
          step_i += 1
  
          obs, reward, done, truncated, info = env.step(actions)
          check_obs(obs, batch_size, grid_size)
          assert_logger_buffer_size(env, n_steps=step_i)
          assert not done["__all__"] or (
              step_i == n_steps_in_epi and done["__all__"]
          )
  
          if done["__all__"]:
              assert info["player_red"]["pick_speed"] == red_speed
              assert info["player_blue"]["pick_speed"] == blue_speed
  
              if red_own is None:
                  assert "pick_own_color" not in info["player_red"]
              else:
                  assert info["player_red"]["pick_own_color"] == red_own
              if blue_own is None:
                  assert "pick_own_color" not in info["player_blue"]
              else:
                  assert (
                      info["player_blue"]["pick_own_color"] == blue_own
                  )
  
              obs, info = env.reset()
              check_obs(obs, batch_size, grid_size)
              assert_logger_buffer_size(env, n_steps=0)
              step_i = 0
  
imports: import copy
  import random
  import numpy
  from ray.rllib.examples.env.coin_game_vectorized_env import VectorizedCoinGame, AsymVectorizedCoinGame
  from ray.rllib.examples.env.tests.test_coin_game_non_vectorized_env import assert_obs_is_symmetrical
label_desc: Use image node_id 10 for calling a global function with example usage: assert_info(batch_deltas, n_steps, batch_size, p_red_act, p_blue_act, env, grid_size, n_steps_in_epi, p_red_pos, p_blue_pos, c_red_pos, c_blue_pos, red_speed, blue_speed, red_own, blue_own) without return types