Added rudimentary chart generation for benchmarks
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2024-02-09 15:39:49 -05:00
parent 357bb69257
commit 6aca95d832
7 changed files with 153 additions and 1 deletions

View File

@ -8,7 +8,7 @@ class Hardware < Sequel::Model(:hardware)
def bench_results
br = {}
@results.each do |r|
results.each do |r|
br[r.benchmark.name.to_s] = [] unless br.key?(r.benchmark.name)
br[r.benchmark.name.to_s].push(r.avg_score)

View File

@ -4,3 +4,4 @@ require_relative 'index'
require_relative 'hardware'
require_relative 'benchmark'
require_relative 'result'
require_relative 'reports'

46
src/routes/reports.rb Normal file
View File

@ -0,0 +1,46 @@
# frozen_string_literal: true
# /reports routes
class GameData < Sinatra::Base
get '/reports' do
benchmarks = Benchmark.order(:name).all()
hardware = Hardware.order(:name).all()
erb :'reports/index', locals: {
title: 'Generate Reports',
hardware: hardware,
benchmarks: benchmarks
}
end
post '/reports' do
report_type = params[:type]
report_choice = params[:choice]
report_compare = params[:compare]
if report_type == 'benchmark'
choice = Benchmark.where(id: report_choice).first().name
names = []
avg_results = []
min_results = []
report_compare.each do |c|
hrd = Hardware.where(id: c).first()
names.push(hrd.name)
res = Result.where(benchmark_id: report_choice, hardware_id: c).first()
avg_results.push(res.avg_score)
min_results.push(res.min_score)
end
json({
choice: choice,
names: names,
avg_results: avg_results,
min_results: min_results
})
end
end
end

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
require 'sinatra/base'
require 'sinatra/json'
require 'sequel'
require 'sqlite3'