code: def test_generate_trajectory(self):
      # Two groups of three factors
      G = np.array([[1, 0], [0, 1], [0, 1]])
      # Four levels
      num_levels = 4
      output = _generate_trajectory(G, num_levels)
      if np.any((output > 1) | (output < 0)):
          raise AssertionError("Bound not working: %s", output)
      assert_equal(output.shape[0], 3)
      assert_equal(output.shape[1], 3)
  
imports: from numpy.testing import assert_equal, assert_allclose
  from pytest import raises, fixture, warns, mark
  import numpy
  import warnings
  from SALib.sample.morris.morris import sample, _check_group_membership, _check_if_num_levels_is_even, _compute_optimised_trajectories, _generate_p_star, _compute_b_star, _generate_trajectory, _generate_x_star
  from SALib.util import read_param_file, compute_groups_matrix, _define_problem_with_groups, _compute_delta
label_desc: Use image node_id 3 for calling the TestGroupSampleGeneration obj's underlying member method code with example usage: obj.test_generate_trajectory() without return types