Class: ComplexityAssert::ComplexityValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/complexity_assert/complexity_validator.rb

Overview

Generates a sample of execution timings to compute the RMSE of complexity models, in order to valide them

Instance Method Summary collapse

Constructor Details

#initialize(sampler, complexity_models) ⇒ ComplexityValidator



7
8
9
10
# File 'lib/complexity_assert/complexity_validator.rb', line 7

def initialize(sampler, complexity_models)
  @sampler = sampler
  @complexity_models = complexity_models
end

Instance Method Details

#rmsesObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/complexity_assert/complexity_validator.rb', line 12

def rmses
  # TODO these sizes are duplicated with the Matchers
  data = @sampler.run([8,10,12,80,100,120,800,1000,1200],10)

  @complexity_models.map do |model|
    rmse = Math.sqrt(data.map { |size, real_time|
                       (real_time - model.predict_run_time(size))**2
                     }.reduce &:+)
    [ model.to_s, rmse]
  end
end