code: def test_gail(tmp_path, expert_env):
      env_id, expert_path, load_from_memory = expert_env
      env = gym.make(env_id)
  
      traj_data = None
      if load_from_memory:
          traj_data = np.load(expert_path)
          expert_path = None
      dataset = ExpertDataset(
          traj_data=traj_data,
          expert_path=expert_path,
          traj_limitation=10,
          sequential_preprocessing=True,
      )
  
      # Note: train for 1M steps to have a working policy
      model = GAIL(
          "MlpPolicy",
          env,
          adversary_entcoeff=0.0,
          lam=0.92,
          max_kl=0.001,
          expert_dataset=dataset,
          hidden_size_adversary=64,
          verbose=0,
      )
  
      model.learn(300)
      model.save(str(tmp_path / "GAIL-{}".format(env_id)))
      model = model.load(
          str(tmp_path / "GAIL-{}".format(env_id)), env=env
      )
      model.learn(300)
  
      evaluate_policy(model, env, n_eval_episodes=5)
      del dataset, model
  
imports: import os
  import shutil
  import gym
  import numpy
  import pytest
  from stable_baselines import A2C, ACER, ACKTR, GAIL, DDPG, DQN, PPO1, PPO2, TD3, TRPO, SAC
  from stable_baselines.common.cmd_util import make_atari_env
  from stable_baselines.common.vec_env import VecFrameStack, DummyVecEnv
  from stable_baselines.common.evaluation import evaluate_policy
  from stable_baselines.common.callbacks import CheckpointCallback
  from stable_baselines.gail import ExpertDataset, generate_expert_traj
label_desc: Use image node_id 1 for calling a global function with example usage: test_gail(tmp_path, expert_env) without return types