Module: Ibex::CLIReduceReporting
- Included in:
- CLIReduce
- Defined in:
- lib/ibex/cli/reduce_reporting.rb,
sig/ibex/cli/reduce_reporting.rbs
Overview
Versioned machine and terminal reports for bounded delta reduction.
Instance Method Summary collapse
- #default_reduction_bounds ⇒ reduction_bounds
- #reduction_budget_report(details) ⇒ reduction_budget_document
- #reduction_success_report(result) ⇒ reduction_success_document
- #write_reduction_budget(report) ⇒ void
- #write_reduction_success(report) ⇒ void
Instance Method Details
#default_reduction_bounds ⇒ reduction_bounds
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ibex/cli/reduce_reporting.rb', line 36 def default_reduction_bounds { max_trials: @options.fetch(:reduce_max_trials, 1_000), timeout_seconds: @options.fetch(:reduce_timeout, BoundedSubprocess::DEFAULT_TIMEOUT_SECONDS), max_output_bytes: @options.fetch( :reduce_max_output_bytes, BoundedSubprocess::DEFAULT_MAX_OUTPUT_BYTES ), max_input_bytes: @options.fetch(:reduce_max_input_bytes, CLIReduce::DEFAULT_MAX_INPUT_BYTES) } end |
#reduction_budget_report(details) ⇒ reduction_budget_document
26 27 28 29 30 31 32 33 |
# File 'lib/ibex/cli/reduce_reporting.rb', line 26 def reduction_budget_report(details) { ibex_report: "reduce", schema_version: 2, result: "budget_exhausted", mode: @reduction_mode || @options.fetch(:reduce_mode, :tokens), bounded: true, bounds: @reduction_bounds || default_reduction_bounds, budget: details } end |
#reduction_success_report(result) ⇒ reduction_success_document
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ibex/cli/reduce_reporting.rb', line 13 def reduction_success_report(result) items = result.items #: Array[String | Integer] { ibex_report: "reduce", schema_version: 2, result: result.complete ? "minimized" : "incomplete", mode: @reduction_mode, original_size: result.original_size, minimized_size: items.length, trials: result.trials, complete: result.complete, minimized: items, bounded: true, bounds: @reduction_bounds } end |
#write_reduction_budget(report) ⇒ void
This method returns an undefined value.
61 62 63 64 65 66 67 68 69 |
# File 'lib/ibex/cli/reduce_reporting.rb', line 61 def write_reduction_budget(report) if @options.fetch(:reduce_format, "json") == "json" @stdout.puts JSON.pretty_generate(report) return end @stdout.puts("result=#{report[:result]}") @stdout.puts("budget=#{report[:budget].inspect}") end |
#write_reduction_success(report) ⇒ void
This method returns an undefined value.
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/ibex/cli/reduce_reporting.rb', line 48 def write_reduction_success(report) if @options.fetch(:reduce_format, "json") == "json" @stdout.puts JSON.pretty_generate(report) return end @stdout.puts("result=#{report[:result]}") @stdout.puts("mode=#{report[:mode]} original_size=#{report[:original_size]} " \ "minimized_size=#{report[:minimized_size]} trials=#{report[:trials]}") @stdout.puts("minimized=#{report[:minimized].inspect}") end |