Class: Bullshit::TimeCase

Inherits:
Case
  • Object
show all
Extended by:
DSLKit::Constant, DSLKit::DSLAccessor
Includes:
EvaluationModule
Defined in:
lib/bullshit.rb

Overview

This is a Benchmarking Case that uses a time limit.

Instance Attribute Summary

Attributes inherited from Case

#clocks

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EvaluationModule

#detect_autocorrelation, #detect_outliers, #histogram, #statistics_table

Methods inherited from Case

#[], autorun_all, #bmethods, each, inherited, #initialize, #longest_name, output_filename, #post_run, #pre_run, run, run_all, run_count, #run_method, #run_once, #setup, sorted_bmethods, #teardown, #to_s, #write_files

Constructor Details

This class inherits a constructor from Bullshit::Case

Class Method Details

.messageObject


1969
1970
1971
1972
# File 'lib/bullshit.rb', line 1969

def message
  "Running '#{self}' for a duration of #{duration} secs/method"\
    " (compare_time=#{compare_time}):"
end

Instance Method Details

#evaluation(clock) ⇒ Object

Returns the evaluation for bullshit_case with the results of the benchmarking as a String.


1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
# File 'lib/bullshit.rb', line 1979

def evaluation(clock)
  clock.repeat == 0 and
    raise BullshitException, "no measurements were gauged"
  result = ''
  result << statistics_table(clock)
  result << histogram(clock)
  result << detect_outliers(clock)
  result << detect_autocorrelation(clock) 
  result << "\n"
end

#runObject

Check if duration has been set. If yes call Case#run, otherwise raise a BullshitException exception.


1992
1993
1994
1995
1996
# File 'lib/bullshit.rb', line 1992

def run(*)
  self.class.duration or
    raise BullshitException, 'duration has to be set'
  super
end