code: def test_number_input_feature(
      number_config: Dict,
  ) -> None:
      # setup image input feature definition
      number_def = deepcopy(number_config)
  
      # pickup any other missing parameters
      defaults = ECDNumberInputFeatureConfig(name="foo").to_dict()
      set_def = merge_dict(defaults, number_def)
  
      # ensure no exceptions raised during build
      number_config, _ = load_config_with_kwargs(
          ECDNumberInputFeatureConfig, set_def
      )
      input_feature_obj = NumberInputFeature(number_config).to(DEVICE)
  
      # check one forward pass through input feature
      input_tensor = input_feature_obj.create_sample_input(
          batch_size=BATCH_SIZE
      )
      assert input_tensor.shape == torch.Size([BATCH_SIZE])
      assert input_tensor.dtype == torch.float32
  
      encoder_output = input_feature_obj(input_tensor)
      assert encoder_output[ENCODER_OUTPUT].shape == (
          BATCH_SIZE,
          *input_feature_obj.output_shape,
      )
  
file_path: ludwig/tests/ludwig/features/test_number_feature.py
imports: from copy import deepcopy
  from typing import Dict
  import numpy
  import pytest
  import torch
  from ludwig.constants import ENCODER_OUTPUT
  from ludwig.features.number_feature import _OutlierReplacer, NumberInputFeature
  from ludwig.schema.features.number_feature import ECDNumberInputFeatureConfig
  from ludwig.schema.utils import load_config_with_kwargs
  from ludwig.utils.misc_utils import merge_dict
  from ludwig.utils.torch_utils import get_torch_device
label_desc: Use image node_id 2 for calling a global function with example usage: test_number_input_feature(number_config) without return types