code: def test_episode_shuffle(self):
      from parlai.mutators.episode_shuffle import EpisodeShuffleMutator
  
      ex1, ex2, ex3, ex4 = self._apply_mutator(EpisodeShuffleMutator)
  
      # check episode done is always set correctly
      assert not ex1["episode_done"]
      assert ex2["episode_done"]
      assert not ex3["episode_done"]
      assert ex4["episode_done"]
  
      # check there was a mutation
      assert self._text_eq(ex1, EXAMPLE1) or self._text_eq(
          ex2, EXAMPLE1
      )
      assert self._text_eq(ex2, EXAMPLE2) or self._text_eq(
          ex1, EXAMPLE2
      )
      assert not self._text_eq(ex1, ex2)
  
      assert self._text_eq(ex3, EXAMPLE3) or self._text_eq(
          ex4, EXAMPLE3
      )
      assert self._text_eq(ex4, EXAMPLE4) or self._text_eq(
          ex3, EXAMPLE4
      )
      assert not self._text_eq(ex3, ex4)
  
imports: import unittest
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.teachers import create_task_agent_from_taskname
  from parlai.core.message import Message
label_desc: Use image node_id 9 for calling the TestSpecificMutators obj's underlying member method code with example usage: obj.test_episode_shuffle() without return types