Sha256: 318d9aad43d1873e93afe98d07f67963f381d33fe039bf0a490c52246620e9be

Contents?: true

Size: 926 Bytes

Versions: 5

Compression:

Stored size: 926 Bytes

Contents

# frozen_string_literal: true

module FacterStatistax
  module Executors
    class TestRunExecutor
      def initialize(run)
        @fact = run.fact
        @repetitions = run.repetitions
      end

      attr_reader :fact, :repetitions

      def execute
        sum = sum_for_each_repetition do
          time, _status = Open3.capture2("ruby \"#{SCRIPTS_DIR}/benchmark_script.rb\" #{IS_GEM} #{fact}")
          log_time(fact, time)
          time.to_f
        end
        Common::OutputWriter.instance.write_run(fact, sum / repetitions)
      end

      private

      def sum_for_each_repetition
        sum = 0
        repetitions.times do
          time = yield
          sum += time
        end
        sum
      end

      def log_time(fact, time)
        FacterStatistax.logger.info("For #{fact} facts it took:")
        FacterStatistax.logger.info("#{format('%<time>.2f', time: time)}s")
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
facter-statistax-0.0.10 lib/executors/test_run_executor.rb
facter-statistax-0.0.9 lib/executors/test_run_executor.rb
facter-statistax-0.0.8 lib/executors/test_run_executor.rb
facter-statistax-0.0.7 lib/executors/test_run_executor.rb
facter-statistax-0.0.6 lib/executors/test_run_executor.rb