/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/java/com/thealgorithms/scheduling/FairShareSchedulingTest.java
60 строк
2 KB
Hardik Pawar
Add `FairShareScheduling` algorithm (#5815)
26 окт 2024, 10:11
Не верифицирован
26 окт 2024, 10:11
acbce00
Код
Авторство
О чём код?
package com.thealgorithms.scheduling; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class FairShareSchedulingTest { private FairShareScheduling scheduler; @BeforeEach public void setup() { scheduler = new FairShareScheduling(); } @Test public void testAllocateResourcesSingleUser() { scheduler.addUser("User1"); scheduler.addTask("User1", 5); scheduler.allocateResources(100); Map<String, Integer> expected = Map.of("User1", 100); assertEquals(expected, scheduler.getAllocatedResources()); } @Test public void testAllocateResourcesMultipleUsers() { scheduler.addUser("User1"); scheduler.addUser("User2"); scheduler.addUser("User3"); scheduler.addTask("User1", 2); scheduler.addTask("User2", 3); scheduler.addTask("User3", 5); scheduler.allocateResources(100); Map<String, Integer> expected = Map.of("User1", 20, "User2", 30, "User3", 50); assertEquals(expected, scheduler.getAllocatedResources()); } @Test public void testAllocateResourcesZeroWeightUser() { scheduler.addUser("User1"); scheduler.addUser("User2"); scheduler.addTask("User2", 5); scheduler.allocateResources(100); Map<String, Integer> expected = Map.of("User1", 0, "User2", 100); assertEquals(expected, scheduler.getAllocatedResources()); } @Test public void testAllocateResourcesEqualWeights() { scheduler.addUser("User1"); scheduler.addUser("User2"); scheduler.addTask("User1", 1); scheduler.addTask("User2", 1); scheduler.allocateResources(100); Map<String, Integer> expected = Map.of("User1", 50, "User2", 50); assertEquals(expected, scheduler.getAllocatedResources()); } }