From 261ab9c4f4d6ee7e34078c455af5e593be59e3ea Mon Sep 17 00:00:00 2001 From: clemens Date: Tue, 5 Jul 2022 13:51:24 +0200 Subject: [PATCH] add test case for #1 Values are calculated, however not present in plot. Further research needed --- src/main/java/satisfactory/Test.java | 4 ++-- .../java/satisfactory/items/Production.java | 6 +++--- src/main/java/satisfactory/items/Recipe.java | 2 +- src/test/java/satisfactory/items/ItemTest.java | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/satisfactory/Test.java b/src/main/java/satisfactory/Test.java index 5f50eba..5057658 100644 --- a/src/main/java/satisfactory/Test.java +++ b/src/main/java/satisfactory/Test.java @@ -122,10 +122,10 @@ public class Test { planFor(Database.UraniumFuelRod, 1, "fuelrod"); planFor(Database.FusedModularFrame, 100, "fusedFrame"); - planFor(Database.SteelIngot, 100, "steelIngot"); + planFor(Database.SteelIngot, 81.75, "steelIngot"); } - private static void planFor(Item item, int amount, String name) { + private static void planFor(Item item, double amount, String name) { SumResult plan = SumResult.sum(new Production(item, amount)); plot2(plan.getProduction(), name); javaPlot(name); diff --git a/src/main/java/satisfactory/items/Production.java b/src/main/java/satisfactory/items/Production.java index 15f518b..798ad74 100644 --- a/src/main/java/satisfactory/items/Production.java +++ b/src/main/java/satisfactory/items/Production.java @@ -2,9 +2,9 @@ package satisfactory.items; public class Production { private final Item item; - private final int amount; + private final double amount; - public Production(Item item, int amount) { + public Production(Item item, double amount) { this.item = item; this.amount = amount; } @@ -13,7 +13,7 @@ public class Production { return item; } - public int getAmount() { + public double getAmount() { return amount; } } diff --git a/src/main/java/satisfactory/items/Recipe.java b/src/main/java/satisfactory/items/Recipe.java index 65eca02..8138704 100644 --- a/src/main/java/satisfactory/items/Recipe.java +++ b/src/main/java/satisfactory/items/Recipe.java @@ -176,7 +176,7 @@ public class Recipe { return product.getRecipe().outputs.get(product) * runs; } - public SumResult sum(Item target, int prodPerMinute) { + public SumResult sum(Item target, double prodPerMinute) { Graph buildGraph = buildGraph(target); Graph production = new DefaultDirectedWeightedGraph<>(ProductionEdge.class); Map map = new HashMap<>(); diff --git a/src/test/java/satisfactory/items/ItemTest.java b/src/test/java/satisfactory/items/ItemTest.java index 1c66e62..d637a14 100644 --- a/src/test/java/satisfactory/items/ItemTest.java +++ b/src/test/java/satisfactory/items/ItemTest.java @@ -99,4 +99,21 @@ class ItemTest { assertEquals(amount, calculations.get(item), 0.01, item.getName()); }); } + @Test + void uraniumFuelRodWithSteelIngotParents(){ + Map ref = new HashMap<>(); + ref.put(Database.SteelIngot, 81.75); + ref.put(Database.IronOre, 81.75); + ref.put(Database.Coal, 81.75); + compareProductions(Database.UraniumFuelRod, 1, ref); + } + + private void compareProductions(Item targetItem, int amount, Map ref) { + Map sum = SumResult.sum(new Production(targetItem, amount)).getMap(); + + ref.forEach((item, aDouble) -> { + assertTrue(sum.containsKey(item)); + assertEquals(aDouble, sum.get(item)); + }); + } } \ No newline at end of file