code: def test_get_control_param():
      # discrete control
      action_space = DiscreteActionSpace(3)
      epsilon_schedule = LinearSchedule(1.0, 0.1, 1000)
      policy = EGreedy(
          action_space, epsilon_schedule, evaluation_epsilon=0.01
      )
  
      # verify schedule applies to TRAIN phase
      policy.change_phase(RunPhase.TRAIN)
      for i in range(999):
          best_action = policy.get_action(np.array([10, 20, 30]))
          assert 1.0 > policy.get_control_param() > 0.1
      best_action = policy.get_action(np.array([10, 20, 30]))
      assert policy.get_control_param() == 0.1
  
      # test phases
      policy.change_phase(RunPhase.TEST)
      assert policy.get_control_param() == 0.01
  
      policy.change_phase(RunPhase.TRAIN)
      assert policy.get_control_param() == 0.1
  
      policy.change_phase(RunPhase.HEATUP)
      assert policy.get_control_param() == 0.1
  
file_path: coach/rl_coach/tests/exploration_policies/test_e_greedy.py
imports: import os
  import sys
  import pytest
  from rl_coach.spaces import DiscreteActionSpace
  from rl_coach.exploration_policies.e_greedy import EGreedy
  from rl_coach.schedules import LinearSchedule
  import numpy
  from rl_coach.core_types import RunPhase
label_desc: Use image node_id 3 for calling a global function with example usage: test_get_control_param() without return types