code: def test_too_few_features_config():
      ifeatures = [number_feature()]
      ofeatures = [binary_feature()]
  
      check_schema(
          {
              "input_features": ifeatures,
              "output_features": ofeatures,
          }
      )
  
      # Must have at least one input feature
      with pytest.raises(ConfigValidationError):
          check_schema(
              {
                  "input_features": [],
                  "output_features": ofeatures,
              }
          )
  
      # Must have at least one output feature
      with pytest.raises(ConfigValidationError):
          check_schema(
              {
                  "input_features": ifeatures,
                  "output_features": [],
              }
          )
  
file_path: ludwig/tests/ludwig/config_validation/test_validate_config_features.py
imports: import pytest
  from ludwig.config_validation.validation import check_schema
  from ludwig.error import ConfigValidationError
  from tests.integration_tests.utils import binary_feature, category_feature, number_feature, text_feature
label_desc: Use image node_id 4 for calling a global function with example usage: test_too_few_features_config() without return types