code: def test_feature_union_should_transform_with_concatenate_inner_features():
      p = Pipeline(
          [
              FeatureUnion(
                  [
                      Identity(),
                      Identity(),
                  ],
                  joiner=NumpyConcatenateInnerFeatures(),
              )
          ]
      )
      data_inputs = np.random.randint(low=0, high=100, size=(1, 20))
  
      outputs = p.transform(data_inputs)
  
      assert np.array_equal(
          outputs, np.concatenate([data_inputs, data_inputs], axis=-1)
      )
  
imports: import numpy
  from sklearn.cluster import KMeans
  from sklearn.ensemble import GradientBoostingRegressor
  from sklearn.linear_model import Ridge
  from neuraxle.base import Identity
  from neuraxle.hyperparams.distributions import RandInt, LogUniform, Boolean
  from neuraxle.hyperparams.space import HyperparameterSamples, HyperparameterSpace
  from neuraxle.pipeline import Pipeline
  from neuraxle.steps.numpy import NumpyTranspose, NumpyConcatenateInnerFeatures
  from neuraxle.steps.sklearn import SKLearnWrapper
  from neuraxle.union import FeatureUnion, ModelStacking, ZipFeatures
label_desc: Use image node_id 1 for calling a global function with example usage: test_feature_union_should_transform_with_concatenate_inner_features() without return types