From 1e0cd49cf822a4711df8cf415458967a81b9c07a Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Fri, 9 Feb 2024 13:57:01 -0500 Subject: [PATCH] Added ability to add benchmark results from hardware page --- src/helpers.rb | 10 ++++++++++ src/models/hardware.rb | 14 ++++++++++++++ src/models/result.rb | 4 ++-- views/hardware/view.erb | 27 ++++++++++++++++++++++----- 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/helpers.rb b/src/helpers.rb index b3db1b4..dacac4f 100644 --- a/src/helpers.rb +++ b/src/helpers.rb @@ -8,4 +8,14 @@ module Helpers return dt.strftime('%B %d, %Y @ %I:%M:%S %p %Z') end + def average_array(arr, decimals = 1) + sum = 0 + + arr.each do |i| + sum += i + end + + return (sum / arr.length).round(decimals) + end + end diff --git a/src/models/hardware.rb b/src/models/hardware.rb index 57b41ab..e2f0865 100644 --- a/src/models/hardware.rb +++ b/src/models/hardware.rb @@ -5,4 +5,18 @@ class Hardware < Sequel::Model(:hardware) one_to_many :results + def bench_results() + br = Hash.new() + + self.results.each do |r| + unless br.key?(r.benchmark.name) + br[r.benchmark.name.to_s] = [] + end + + br[r.benchmark.name.to_s].push(r.avg_score) + end + + return br + end + end diff --git a/src/models/result.rb b/src/models/result.rb index d3f8b5f..916ddbb 100644 --- a/src/models/result.rb +++ b/src/models/result.rb @@ -4,10 +4,10 @@ class Result < Sequel::Model many_to_one :hardware - many_to_one :benchmarks + many_to_one :benchmark def formatted_score - return @score + return @avg_score end end diff --git a/views/hardware/view.erb b/views/hardware/view.erb index d3d9696..9526254 100644 --- a/views/hardware/view.erb +++ b/views/hardware/view.erb @@ -59,10 +59,27 @@

Benchmark results involving this hardware:

- + + + + + + + + + + + <% hardware.bench_results().each do |k, r| %> + + + + + + + + + <% end %> + +
Benchmark nameScoring type# resultsAverageMinimumMaximum
<%= k %>N/a<%= r.length %><%= average_array(r) %>N/aN/a