web/app/models/benchmark_result.rb
author Marcel Hlopko <marcel.hlopko@gmail.com>
Sat, 22 Jun 2013 15:02:47 +0200
changeset 70 e9c892b1c82b
parent 68 ea16cf625333
child 105 8293977e9a30
permissions -rw-r--r--
nicer tables, useless graph removed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     1
# == Schema Information
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     2
#
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     3
# Table name: benchmark_results
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     4
#
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     5
#  id                         :integer          not null, primary key
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     6
#  benchmark_info_id          :integer
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     7
#  language_implementation_id :integer
65
a37ce193f555 add basic import support (text, file, push via POST)
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 44
diff changeset
     8
#  performed_at               :datetime
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     9
#  created_at                 :datetime
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    10
#  updated_at                 :datetime
65
a37ce193f555 add basic import support (text, file, push via POST)
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 44
diff changeset
    11
#  benchmark_batch_id         :integer
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    12
#
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    13
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    14
class BenchmarkResult < ActiveRecord::Base
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    15
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    16
  belongs_to :benchmark_info, dependent: :destroy, inverse_of: :benchmark_results
65
a37ce193f555 add basic import support (text, file, push via POST)
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 44
diff changeset
    17
  belongs_to :benchmark_batch, dependent: :destroy, inverse_of: :benchmark_results
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    18
  has_many :benchmark_durations, inverse_of: :benchmark_result
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    19
  has_many :benchmark_parameters, inverse_of: :benchmark_result
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    20
68
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    21
  def average_duration
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    22
    sum = benchmark_durations.inject(0) { |acc, val| acc += val.duration }
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    23
    sum / benchmark_durations.size
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    24
  end
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    25
70
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    26
  def min_duration
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    27
    benchmark_durations.map { |duration| duration.duration }.min
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    28
  end
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    29
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    30
  def max_duration
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    31
    benchmark_durations.map { |duration| duration.duration }.max
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    32
  end
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    33
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    34
end