class Tryouts::TestBatch
def evaluate_expectations(test_case, actual_result, context, execution_time_ns = nil, stdout_content = nil, stderr_content = nil)
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