diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2023-07-28 13:13:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-28 12:13:57 +0200 |
commit | 4647e2e8be384582ad09c4f97a4c50dff4e05e4b (patch) | |
tree | 24093c64b1c8f8e700b12efedb0c197ca8a1a62e /src/test/java/gregtech | |
parent | c82e45b0aa87ba9e982a770fab08040d9e6d9459 (diff) | |
download | GT5-Unofficial-4647e2e8be384582ad09c4f97a4c50dff4e05e4b.tar.gz GT5-Unofficial-4647e2e8be384582ad09c4f97a4c50dff4e05e4b.tar.bz2 GT5-Unofficial-4647e2e8be384582ad09c4f97a4c50dff4e05e4b.zip |
Add more API to ParallelHelper and rework OverclockCalculator (#2185)
* refactor OC calc
* somewhat refactor parallel helper
* fix PA not OCing correctly
no clue why it wasn't using super and then setting the duration again.
* make use of new api to make fusion cleaner
* make batch mode actually dynamic
* add another reason for 0 parallel
* move variables around to try and group them together
* address reviews
* add overclocking past 1 tick by adding parallels
* add null check and make a basic calculator to prevent npe
* check null recipeMap supplier
* address reviews
* addressing of reviews
* make it possible to call some OverclockCalculator methods through static methods
* address reviews
* make sure one doesn't get too many OCs when calculatin under 1 tick
* add api for custom duration under one tick and fix batch mode doing 0 ticking
* fix not calculating duration under 1 tick correctly
* spotless
* try to have correct eut consumption
* address review
* make sure mk5 fusion is said in nei
* fix eutCalculating under one tick way too much and address reviews
* remove roundUp voltage
Diffstat (limited to 'src/test/java/gregtech')
-rw-r--r-- | src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java index 5f2c4632ce..cd33b4280a 100644 --- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java +++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java @@ -20,10 +20,10 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[5]) .setDuration(1024) - .enableHeatOC() - .enableHeatDiscount() + .setHeatOC(true) + .setHeatDiscount(true) .setRecipeHeat(1800) - .setMultiHeat(1800 * 5) + .setMachineHeat(1800 * 5) .calculate(); assertEquals(1024 >> 8, calculator.getDuration(), messageDuration); assertEquals(correctConsumption, calculator.getConsumption(), messageEUt); @@ -36,10 +36,10 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[5]) .setDuration(1024) - .enableHeatOC() - .enableHeatDiscount() + .setHeatOC(true) + .setHeatDiscount(true) .setRecipeHeat(1800) - .setMultiHeat(2700) + .setMachineHeat(2700) .calculate(); assertEquals(1024 >> 4, calculator.getDuration(), messageDuration); assertEquals(correctConsumption, calculator.getConsumption(), messageEUt); @@ -50,10 +50,10 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[5]) .setDuration(1024) - .enableHeatOC() - .enableHeatDiscount() + .setHeatOC(true) + .setHeatDiscount(true) .setRecipeHeat(1800) - .setMultiHeat(1800) + .setMachineHeat(1800) .calculate(); assertEquals(1024 >> 4, calculator.getDuration(), messageDuration); assertEquals(VP[5], calculator.getConsumption(), messageEUt); @@ -66,10 +66,10 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[5]) .setDuration(1024) - .enableHeatOC() - .enableHeatDiscount() + .setHeatOC(true) + .setHeatDiscount(true) .setRecipeHeat(1800) - .setMultiHeat(3600) + .setMachineHeat(3600) .calculate(); assertEquals(1024 >> 5, calculator.getDuration(), messageDuration); assertEquals(correctConsumption, calculator.getConsumption(), messageEUt); @@ -103,10 +103,10 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[6]) .setDuration(2048) - .enableHeatOC() - .enableHeatDiscount() + .setHeatOC(true) + .setHeatDiscount(true) .setRecipeHeat(486) - .setMultiHeat(3900) + .setMachineHeat(3900) .calculate(); assertEquals(2048 >> 6, calculator.getDuration(), messageDuration); assertEquals(correctConsumption, calculator.getConsumption(), messageEUt); @@ -118,6 +118,7 @@ class GT_OverclockCalculator_UnitTest { .setEUt(V[6] + V[6]) .setAmperage(2) .setDuration(1024) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 6, calculator.getDuration(), messageDuration); assertEquals(VP[7], calculator.getConsumption(), messageEUt); @@ -129,6 +130,7 @@ class GT_OverclockCalculator_UnitTest { .setEUt(V[6]) .setAmperage(256) .setDuration(1024) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 9, calculator.getDuration(), messageDuration); assertEquals(VP[10], calculator.getConsumption(), messageEUt); @@ -140,6 +142,7 @@ class GT_OverclockCalculator_UnitTest { .setEUt(V[6]) .setAmperage(320) .setDuration(1024) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 9, calculator.getDuration(), messageDuration); assertEquals(VP[10], calculator.getConsumption(), messageEUt); @@ -152,6 +155,7 @@ class GT_OverclockCalculator_UnitTest { .setAmperage(4) .setDuration(1024) .setParallel(16) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 6, calculator.getDuration(), messageDuration); assertEquals(VP[9], calculator.getConsumption(), messageEUt); @@ -164,6 +168,7 @@ class GT_OverclockCalculator_UnitTest { .setAmperage(4) .setDuration(4096) .setParallel(16) + .setAmperageOC(true) .enablePerfectOC() .calculate(); assertEquals(4096 >> 12, calculator.getDuration(), messageDuration); @@ -177,6 +182,7 @@ class GT_OverclockCalculator_UnitTest { .setAmperage(320) .setDuration(1024) .setParallel(16) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 7, calculator.getDuration(), messageDuration); assertEquals(VP[10], calculator.getConsumption(), messageEUt); @@ -200,6 +206,7 @@ class GT_OverclockCalculator_UnitTest { .setAmperage(320) .setDuration(1024) .setParallel(8) + .setAmperageOC(true) .calculate(); assertEquals(1024 >> 9, calculator.getDuration(), messageDuration); assertEquals(VP[6] * 8 * 256, calculator.getConsumption(), messageEUt); @@ -278,7 +285,7 @@ class GT_OverclockCalculator_UnitTest { GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]) .setEUt(V[6]) .setDuration(1) - .enableOneTickDiscount() + .setOneTickDiscount(true) .calculate(); assertEquals(1, calculator.getDuration(), messageDuration); assertEquals(1, calculator.getConsumption(), messageEUt); @@ -290,7 +297,7 @@ class GT_OverclockCalculator_UnitTest { .setEUt(V[6]) .setSpeedBoost(1.1f) .setDuration(4) - .enableOneTickDiscount() + .setOneTickDiscount(true) .calculate(); assertEquals(1, calculator.getDuration(), messageDuration); assertEquals(480 >> 3, calculator.getConsumption(), messageEUt); @@ -303,7 +310,7 @@ class GT_OverclockCalculator_UnitTest { .setSpeedBoost(1.1f) .setDuration(16) .enablePerfectOC() - .enableOneTickDiscount() + .setOneTickDiscount(true) .calculate(); assertEquals(1, calculator.getDuration(), messageDuration); assertEquals(480 >> 6, calculator.getConsumption(), messageEUt); @@ -343,4 +350,17 @@ class GT_OverclockCalculator_UnitTest { assertEquals(1, calculator.getDuration(), messageDuration); assertEquals(VP[0], calculator.getConsumption(), messageEUt); } + + @Test + void testNotPowerOverflowing_Test() { + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(16) + .setParallel(64) + .setAmperage(64) + .setAmperageOC(true) + .setEUt(V[5]) + .setDuration(30) + .calculate(); + assertEquals(1, calculator.getDuration(), messageDuration); + assertEquals(16 << 14, calculator.getConsumption(), messageEUt); + } } |