class Tryouts::CLI::VerboseFormatter

def show_failure_details(test_case, actual_results, expected_results = [])

def show_failure_details(test_case, actual_results, expected_results = [])
  return if actual_results.empty?
  actual_results.each_with_index do |actual, idx|
    expected = expected_results[idx] if expected_results && idx < expected_results.length
    expected_line = test_case.expectations[idx] if test_case.expectations
    if !expected.nil?
      # Use the evaluated expected value from the evaluator
      puts indent_text("Expected: #{Console.color(:green, expected.inspect)}", 4)
      puts indent_text("Actual:   #{Console.color(:red, actual.inspect)}", 4)
    elsif expected_line && !expected_results.empty?
      # Only show raw expectation content if we have expected_results (non-error case)
      puts indent_text("Expected: #{Console.color(:green, expected_line.content)}", 4)
      puts indent_text("Actual:   #{Console.color(:red, actual.inspect)}", 4)
    else
      # For error cases (empty expected_results), just show the error
      puts indent_text("Error:   #{Console.color(:red, actual.inspect)}", 4)
    end
    # Show difference if both are strings
    if !expected.nil? && actual.is_a?(String) && expected.is_a?(String)
      show_string_diff(expected, actual)
    end
    puts
  end
end