Initial version of VNS algorithm #8
@ -100,20 +100,31 @@ module Tables
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the table contains four guests of two split groups' do
|
||||
context 'when the table contains four guests of two evenly split groups' do
|
||||
let(:table) do
|
||||
[
|
||||
create(:guest, affinity_group_list: ['family']),
|
||||
create(:guest, affinity_group_list: ['family']),
|
||||
create(:guest, affinity_group_list: ['friends']),
|
||||
create(:guest, affinity_group_list: ['friends'])
|
||||
]
|
||||
create_list(:guest, 2, affinity_group_list: ['family']),
|
||||
create_list(:guest, 2, affinity_group_list: ['friends'])
|
||||
].flatten
|
||||
end
|
||||
|
||||
it 'returns the sum of the penalties for each pair of guests' do
|
||||
expect(calculator.send(:cohesion_penalty)).to eq(4)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the table contains six guests of two unevenly split groups' do
|
||||
let(:table) do
|
||||
[
|
||||
create_list(:guest, 2, affinity_group_list: ['family']),
|
||||
create_list(:guest, 4, affinity_group_list: ['friends'])
|
||||
].flatten
|
||||
end
|
||||
|
||||
it 'returns the sum of the penalties for each pair of guests' do
|
||||
expect(calculator.send(:cohesion_penalty)).to eq(8)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user