code: def test_get_filtered_observation_space():
      # Keep
      observation_space = VectorObservationSpace(
          3, measurements_names=["a", "b", "c"]
      )
      env_response = EnvResponse(
          next_state={"observation": np.ones([3])},
          reward=0,
          game_over=False,
      )
      reduction_filter = InputFilter()
      reduction_filter.add_observation_filter(
          "observation",
          "reduce",
          ObservationReductionBySubPartsNameFilter(
              ["a"],
              ObservationReductionBySubPartsNameFilter.ReductionMethod.Keep,
          ),
      )
  
      filtered_observation_space = (
          reduction_filter.get_filtered_observation_space(
              "observation", observation_space
          )
      )
      assert np.all(filtered_observation_space.shape == np.array([1]))
      assert filtered_observation_space.measurements_names == ["a"]
  
      # Discard
      observation_space = VectorObservationSpace(
          3, measurements_names=["a", "b", "c"]
      )
      env_response = EnvResponse(
          next_state={"observation": np.ones([3])},
          reward=0,
          game_over=False,
      )
      reduction_filter = InputFilter()
      reduction_filter.add_observation_filter(
          "observation",
          "reduce",
          ObservationReductionBySubPartsNameFilter(
              ["a"],
              ObservationReductionBySubPartsNameFilter.ReductionMethod.Discard,
          ),
      )
  
      filtered_observation_space = (
          reduction_filter.get_filtered_observation_space(
              "observation", observation_space
          )
      )
      assert np.all(filtered_observation_space.shape == np.array([2]))
      assert filtered_observation_space.measurements_names == ["b", "c"]
  
file_path: coach/rl_coach/tests/filters/observation/test_observation_reduction_by_sub_parts_name_filter.py
imports: import os
  import sys
  import pytest
  import numpy
  from rl_coach.filters.observation.observation_reduction_by_sub_parts_name_filter import ObservationReductionBySubPartsNameFilter
  from rl_coach.spaces import VectorObservationSpace
  from rl_coach.core_types import EnvResponse
  from rl_coach.filters.filter import InputFilter
label_desc: Use image node_id 2 for calling a global function with example usage: test_get_filtered_observation_space() without return types