code: def testFromEpisodeArray(self):
      observation = np.random.rand(4, 5)
      action = ()
      policy_info = ()
      reward = np.random.rand(4)
      traj = trajectory.from_episode(
          observation, action, policy_info, reward, discount=None
      )
      self.assertFalse(tf.is_tensor(traj.step_type))
      first = ts.StepType.FIRST
      mid = ts.StepType.MID
      last = ts.StepType.LAST
      self.assertAllEqual(traj.step_type, [first, mid, mid, mid])
      self.assertAllEqual(traj.next_step_type, [mid, mid, mid, last])
      self.assertAllEqual(traj.observation, observation)
      self.assertAllEqual(traj.reward, reward)
      self.assertAllEqual(traj.discount, [1.0, 1.0, 1.0, 1.0])
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import sys
  import numpy
  import tensorflow
  from tf_agents.drivers import dynamic_episode_driver
  from tf_agents.drivers import test_utils
  from tf_agents.environments import tf_py_environment
  from tf_agents.trajectories import time_step
  from tf_agents.trajectories import trajectory
  from tf_agents.utils import test_utils
label_desc: Use image node_id 12 for calling the TrajectoryTest obj's underlying member method code with example usage: obj.testFromEpisodeArray() without return types