code: def test_inner_concatenate_data_should_merge_3d_with_3d():
      # Given
      data_inputs_3d, expected_outputs_3d = _create_data_source(
          SHAPE_3D
      )
      (
          data_inputs_3d_second,
          expected_outputs_3d_second,
      ) = _create_data_source(SHAPE_3D)
      data_container_3d_second = DACT(
          data_inputs=data_inputs_3d_second,
          expected_outputs=expected_outputs_3d_second,
      )
      data_container = DACT(
          data_inputs=data_inputs_3d,
          expected_outputs=expected_outputs_3d,
      ).add_sub_data_container("2d", data_container_3d_second)
  
      # When
      p = Pipeline(
          [
              InnerConcatenateDataContainer(
                  sub_data_container_names=["2d"]
              )
          ]
      )
  
      data_container = p.handle_transform(data_container, CX())
  
      # Then
      assert data_container.data_inputs.shape == (
          SHAPE_3D[0],
          SHAPE_3D[1],
          SHAPE_3D[2] * 2,
      )
      assert data_container.expected_outputs.shape == (
          SHAPE_3D[0],
          SHAPE_3D[1],
          SHAPE_3D[2] * 2,
      )
      assert np.array_equal(
          data_container.data_inputs[..., -SHAPE_3D[2] :],
          data_container_3d_second.data_inputs,
      )
      assert np.array_equal(
          data_container.expected_outputs[..., -SHAPE_3D[2] :],
          data_container_3d_second.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 1 for calling a global function with example usage: test_inner_concatenate_data_should_merge_3d_with_3d() without return types