From 312f902598dcc8cb3422df0ac997e78fb073f3bb Mon Sep 17 00:00:00 2001 From: iamblackornot Date: Sat, 7 Oct 2023 10:02:28 +0300 Subject: - fixes https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/14559 (#2325) - had to change 2 unit test to address the mentioned above OC calculation fix Co-authored-by: iamblackornot --- .../overclock/GT_OverclockCalculator_UnitTest.java | 32 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java index d9343a9273..7aab323d7e 100644 --- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java +++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java @@ -301,7 +301,21 @@ class GT_OverclockCalculator_UnitTest { .setOneTickDiscount(true) .calculate(); assertEquals(1, calculator.getDuration(), messageDuration); - assertEquals(480 >> 3, calculator.getConsumption(), messageEUt); + + /** + * duration with speedboost = 5 + * log_2(5) ~ 2.3; + * round up to 3 to reach one tick duration + */ + int overclocksTillOneTick = 3; + int overclocksBeyondOneTick = 2; + + // 3 overclocks, each gives 4x consumption growth per tick (1920) + long targetEUt = VP[1] << 2 * overclocksTillOneTick; + // 2 remaining overclocks are beyond 1 tick, each provides 2x comsumption discount (480) + targetEUt >>= overclocksBeyondOneTick; + + assertEquals(targetEUt, calculator.getConsumption(), messageEUt); } @Test @@ -313,8 +327,22 @@ class GT_OverclockCalculator_UnitTest { .enablePerfectOC() .setOneTickDiscount(true) .calculate(); + + /** + * duration with speedboost = 18 + * log_4(18) ~ 2.08; + * round up to 3 to reach one tick duration + */ + int overclocksTillOneTick = 3; + int overclocksBeyondOneTick = 2; + + // 3 overclocks, each gives 4x consumption growth per tick (1920) + long targetEUt = VP[1] << 2 * overclocksTillOneTick; + // 2 remaining overclocks are beyond 1 tick, each provides 4x comsumption discount (120) + targetEUt >>= 2 * overclocksBeyondOneTick; + + assertEquals(targetEUt, calculator.getConsumption(), messageEUt); assertEquals(1, calculator.getDuration(), messageDuration); - assertEquals(480 >> 6, calculator.getConsumption(), messageEUt); } @Test -- cgit