aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorBlueWeabo <ilia.iliev2005@gmail.com>2023-07-30 11:11:19 +0300
committerGitHub <noreply@github.com>2023-07-30 11:11:19 +0300
commit78b436b8f4b55b8f892c43aa4d34b6856547e20a (patch)
tree20b2692114707f57e886fa00c27ded57b8fd57ea /src/test
parent190d29ec4eecb6508a91288639b1b6194e077fda (diff)
downloadGT5-Unofficial-78b436b8f4b55b8f892c43aa4d34b6856547e20a.tar.gz
GT5-Unofficial-78b436b8f4b55b8f892c43aa4d34b6856547e20a.tar.bz2
GT5-Unofficial-78b436b8f4b55b8f892c43aa4d34b6856547e20a.zip
Fix Overclock Calculator Making Too many parallels and wrong eut consumption (#2190)
* fix overclock calculator making too many parallels and wrong eut consumptions * fix duration increase when trying to do a noOverclock calculator * spotless * add correct api for no overclock * address review
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
index cd33b4280a..58ce077537 100644
--- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
+++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
@@ -363,4 +363,42 @@ class GT_OverclockCalculator_UnitTest {
assertEquals(1, calculator.getDuration(), messageDuration);
assertEquals(16 << 14, calculator.getConsumption(), messageEUt);
}
+
+ @Test
+ void testCorrectEUtWhenOverclockingUnderOneTick_Test() {
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(24)
+ .setParallel(56)
+ .setAmperage(1)
+ .setAmperageOC(true)
+ .setSpeedBoost(1f / 6f)
+ .setEUt(V[14])
+ .setDuration(56);
+ assertEquals((24 * 56) << 20, calculator.calculateEUtConsumptionUnderOneTick(56, 6144));
+ }
+
+ @Test
+ void testCorrectEUtWhenOverclockingUnderOneTickWithHeat_Test() {
+ double heatDiscount = Math.pow(0.95, (15500 - 2000) / 900);
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(1920)
+ .setParallel(256)
+ .setAmperage(1)
+ .setAmperageOC(true)
+ .setHeatDiscount(true)
+ .setHeatOC(true)
+ .setRecipeHeat(2000)
+ .setMachineHeat(15500)
+ .setEUt(V[12] * 1_048_576)
+ .setDuration(250);
+ assertEquals(
+ Math.ceil((((long) 1920 * 256) << 28) * heatDiscount),
+ calculator
+ .calculateEUtConsumptionUnderOneTick(256, (int) (256 / calculator.calculateDurationUnderOneTick())));
+ }
+
+ @Test
+ void testNoOverclockCorrectWithUnderOneTickLogic_Test() {
+ GT_OverclockCalculator calculator = GT_OverclockCalculator.ofNoOverclock(2_693_264_510L, 100)
+ .setParallel(24 * 64);
+ assertEquals(100, calculator.calculateDurationUnderOneTick());
+ }
}