Use average discomfort instead of sum
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m1s
Add copyright notice / copyright_notice (pull_request) Successful in 1m29s
Run unit tests / unit_tests (pull_request) Successful in 2m14s

This commit is contained in:
Manuel Bustillo 2024-11-10 11:34:26 +01:00
parent 2d96f1c7c2
commit 021b82b28e
2 changed files with 14 additions and 1 deletions

View File

@ -8,7 +8,7 @@ module Tables
end
def calculate
table_size_penalty + cohesion_penalty
table_size_penalty + 10 * (cohesion_penalty * 1.0 / table.size)
end
private

View File

@ -10,6 +10,19 @@ module Tables
let(:work) { create(:group, name: 'work') }
let(:school) { create(:group, name: 'school') }
describe '#calculate' do
before do
allow(calculator).to receive(:table_size_penalty).and_return(2)
allow(calculator).to receive(:cohesion_penalty).and_return(3)
end
let(:table) { Table.new(create_list(:guest, 6)) }
it 'returns the sum of the table size penalty and the average cohesion penalty' do
expect(calculator.calculate).to eq(2 + 10 * 3 / 6.0)
end
end
describe '#table_size_penalty' do
before do
table.min_per_table = 5