code: def test_validate_fe_steps_error_categorical_missing(
      candidate,
      template,
      candidate_suffix,
      template_suffix,
      candidate_step_cast,
  ):
      """Test that `IncompatibleCandidateError` is raised by `validate_fe_steps` when `candidate`
      is missing a non-`optional` `Categorical` step in `template`
  
      Parameters
      ----------
      candidate: List
          `candidate` value given to :func:`~hyperparameter_hunter.result_reader.validate_fe_steps`
      template: List
          `template` value given to :func:`~hyperparameter_hunter.result_reader.validate_fe_steps`
      candidate_suffix: List
          Additional steps to append to the end of `candidate` before invoking `validate_fe_steps`
      template_suffix: List
          Additional steps to append to the end of `template` before invoking `validate_fe_steps`
      """
      with pytest.raises(IncompatibleCandidateError):
          validate_fe_steps(
              candidate_step_cast(candidate + candidate_suffix),
              FeatureEngineer(template + template_suffix),
          )
  
file_path: hyperparameter_hunter/tests/test_i_o/test_result_reader.py
imports: from hyperparameter_hunter import FeatureEngineer, Categorical
  from hyperparameter_hunter.i_o.exceptions import IncompatibleCandidateError
  from hyperparameter_hunter.i_o.result_reader import validate_fe_steps
  from hyperparameter_hunter.space.dimensions import RejectedOptional
  import pytest
label_desc: Use image node_id 13 for calling a global function with example usage: test_validate_fe_steps_error_categorical_missing(candidate, template, candidate_suffix, template_suffix, candidate_step_cast) without return types