class Tryouts::TestBatch

def evaluate_expectations(test_case, actual_result, context, execution_time_ns = nil, stdout_content = nil, stderr_content = nil)

Evaluate expectations using new object-oriented evaluation system
def evaluate_expectations(test_case, actual_result, context, execution_time_ns = nil, stdout_content = nil, stderr_content = nil)
  return { passed: true, actual_results: [], expected_results: [] } if test_case.expectations.empty?
  evaluation_results = test_case.expectations.map do |expectation|
    evaluator = ExpectationEvaluators::Registry.evaluator_for(expectation, test_case, context)
    # Pass appropriate data to different evaluator types
    if expectation.performance_time? && execution_time_ns
      evaluator.evaluate(actual_result, execution_time_ns)
    elsif expectation.output? && (stdout_content || stderr_content)
      evaluator.evaluate(actual_result, stdout_content, stderr_content)
    else
      evaluator.evaluate(actual_result)
    end
  end
  aggregate_evaluation_results(evaluation_results)
end