This repository has been archived on 2020-08-02. You can view files and clone it, but cannot push or open issues or pull requests.
e-commerce/prototype/src/test/java/org/hso/ecommerce/action/warehouse/CalculateWarehouseStatsTest...

58 lines
1.7 KiB
Java

package org.hso.ecommerce.action.warehouse;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.hso.ecommerce.entities.shop.Article;
import org.hso.ecommerce.entities.warehouse.Slot;
import org.hso.ecommerce.entities.warehouse.WarehouseBookingPositionSlotEntry;
import org.junit.jupiter.api.Test;
class CalculateWarehouseStatsTest {
@Test
void test() {
// articles with different amounts of items that fit in one warehouse slot
Article fanta = new Article();
fanta.id = 1;
fanta.warehouseUnitsPerSlot = 18;
Article cola = new Article();
cola.id = 2;
cola.warehouseUnitsPerSlot = 7;
List<WarehouseBookingPositionSlotEntry> entries = new ArrayList<>();
for (int i=1; i<=20; i++) {
WarehouseBookingPositionSlotEntry entry = new WarehouseBookingPositionSlotEntry();
entry.slot = new Slot();
entry.slot.slotNum = i;
entries.add(entry);
}
entries.get(0).article = fanta;
entries.get(0).newSumSlot = 12;
entries.get(3).article = cola;
entries.get(3).newSumSlot = 7;
entries.get(4).article = fanta;
entries.get(4).newSumSlot = 18;
entries.get(11).article = fanta;
entries.get(11).newSumSlot = 2;
entries.get(15).article = cola;
entries.get(15).newSumSlot = 5;
CalculateWarehouseStatsAction.WarehouseStats result = new CalculateWarehouseStatsAction(entries).finish();
assertEquals(2, result.numArticles);
assertSimilar(5.0 / 20.0, result.ratioUsedSlots);
assertSimilar(32.0 / 360.0 + 12.0 / 140.0, result.efficiency);
}
private void assertSimilar(double expected, double actual) {
double diff = actual - expected;
assertTrue(diff < 1e-5 && diff > -1e-5);
}
}