diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2023-07-30 11:11:19 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-30 11:11:19 +0300 |
commit | 78b436b8f4b55b8f892c43aa4d34b6856547e20a (patch) | |
tree | 20b2692114707f57e886fa00c27ded57b8fd57ea /src/test | |
parent | 190d29ec4eecb6508a91288639b1b6194e077fda (diff) | |
download | GT5-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.java | 38 |
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()); + } } |