Module: RubyLLM::Contract::RSpec::PassEvalHelpers
- Defined in:
- lib/ruby_llm/contract/rspec/pass_eval.rb
Overview
Helper methods for the pass_eval matcher to keep the block short.
Instance Method Summary collapse
- #format_error_message(eval_name, error) ⇒ Object
- #format_failure_message(eval_name, error, report, minimum_score, maximum_cost) ⇒ Object
- #format_report_message(eval_name, report, minimum_score, maximum_cost) ⇒ Object
Instance Method Details
#format_error_message(eval_name, error) ⇒ Object
14 15 16 |
# File 'lib/ruby_llm/contract/rspec/pass_eval.rb', line 14 def (eval_name, error) "expected #{eval_name} eval to pass, but it raised an error:\n #{error.class}: #{error.}" end |
#format_failure_message(eval_name, error, report, minimum_score, maximum_cost) ⇒ Object
8 9 10 11 12 |
# File 'lib/ruby_llm/contract/rspec/pass_eval.rb', line 8 def (eval_name, error, report, minimum_score, maximum_cost) return (eval_name, error) if error (eval_name, report, minimum_score, maximum_cost) end |
#format_report_message(eval_name, report, minimum_score, maximum_cost) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/ruby_llm/contract/rspec/pass_eval.rb', line 18 def (eval_name, report, minimum_score, maximum_cost) lines = build_header(eval_name, report, minimum_score, maximum_cost) lines << "" report.results.each do |result| cost_str = result.cost ? " $#{format("%.4f", result.cost)}" : "" lines << " #{result.label} #{result.name} (score: #{result.score})#{cost_str}" lines << " #{result.details}" if result.details && result.failed? end lines.join("\n") end |