code: def test_inner_concatenate_data_should_merge_2d_with_3d():
      # Given
      data_inputs_3d, expected_outputs_3d = _create_data_source(
          SHAPE_3D
      )
      data_inputs_2d, expected_outputs_2d = _create_data_source(
          SHAPE_2D
      )
      data_container_2d = DACT(
          data_inputs=data_inputs_2d,
          expected_outputs=expected_outputs_2d,
      )
      data_container_3d = DACT(
          data_inputs=data_inputs_3d,
          expected_outputs=expected_outputs_3d,
      ).add_sub_data_container("2d", data_container_2d)
  
      # When
      p = Pipeline(
          [
              InnerConcatenateDataContainer(
                  sub_data_container_names=["2d"]
              )
          ]
      )
  
      data_container_3d = p.handle_transform(data_container_3d, CX())
  
      # Then
      assert data_container_3d.data_inputs.shape == (
          SHAPE_3D[0],
          SHAPE_3D[1],
          SHAPE_3D[2] + 1,
      )
      assert data_container_3d.expected_outputs.shape == (
          SHAPE_3D[0],
          SHAPE_3D[1],
          SHAPE_3D[2] + 1,
      )
      assert np.array_equal(
          data_container_3d.data_inputs[..., -1],
          data_container_2d.data_inputs,
      )
      assert np.array_equal(
          data_container_3d.expected_outputs[..., -1],
          data_container_2d.expected_outputs,
      )
  
file_path: Neuraxle/testing_neuraxle/steps/test_concatenate_data_container.py
imports: import numpy
  from neuraxle.base import ExecutionContext
  from neuraxle.data_container import DataContainer
  from neuraxle.pipeline import Pipeline
  from neuraxle.steps.data import InnerConcatenateDataContainer, ZipBatchDataContainer
label_desc: Use image node_id 2 for calling a global function with example usage: test_inner_concatenate_data_should_merge_2d_with_3d() without return types