aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java210
1 files changed, 153 insertions, 57 deletions
diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
index 827bc48908..1dcb6003fb 100644
--- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
+++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java
@@ -17,9 +17,14 @@ class GT_OverclockCalculator_UnitTest {
void fullPerfectOverclockEBF_Test() {
int heatDiscounts = (1800 * 4) / 900;
long correctConsumption = (long) Math.ceil(VP[5] * Math.pow(0.95, heatDiscounts));
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[5])
- .setDuration(1024).enableHeatOC().enableHeatDiscount().setRecipeHeat(1800).setMultiHeat(1800 * 5)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[5])
+ .setDuration(1024)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .setRecipeHeat(1800)
+ .setMultiHeat(1800 * 5)
+ .calculate();
assertEquals(1024 >> 8, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@@ -28,18 +33,28 @@ class GT_OverclockCalculator_UnitTest {
void imperfectOverclockEBFWithOneHeatDiscount_Test() {
int heatDiscounts = 1;
long correctConsumption = (long) Math.ceil(VP[5] * Math.pow(0.95, heatDiscounts));
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[5])
- .setDuration(1024).enableHeatOC().enableHeatDiscount().setRecipeHeat(1800).setMultiHeat(2700)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[5])
+ .setDuration(1024)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .setRecipeHeat(1800)
+ .setMultiHeat(2700)
+ .calculate();
assertEquals(1024 >> 4, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@Test
void imperfectOverclockEBFWithoutHeatDiscounts_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[5])
- .setDuration(1024).enableHeatOC().enableHeatDiscount().setRecipeHeat(1800).setMultiHeat(1800)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[5])
+ .setDuration(1024)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .setRecipeHeat(1800)
+ .setMultiHeat(1800)
+ .calculate();
assertEquals(1024 >> 4, calculator.getDuration(), messageDuration);
assertEquals(VP[5], calculator.getConsumption(), messageEUt);
}
@@ -48,25 +63,35 @@ class GT_OverclockCalculator_UnitTest {
void perfectAndImperfectOverclockEBFWithTwoHeatDiscounts_Test() {
int heatDiscounts = 2;
long correctConsumption = (long) Math.ceil(VP[5] * Math.pow(0.95, heatDiscounts));
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[5])
- .setDuration(1024).enableHeatOC().enableHeatDiscount().setRecipeHeat(1800).setMultiHeat(3600)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[5])
+ .setDuration(1024)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .setRecipeHeat(1800)
+ .setMultiHeat(3600)
+ .calculate();
assertEquals(1024 >> 5, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@Test
void generalImperfectOverclock_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 5, calculator.getDuration(), messageDuration);
assertEquals(VP[6], calculator.getConsumption(), messageEUt);
}
@Test
void generalPerfectOverclock_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setDuration(2048).enablePerfectOC().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(2048)
+ .enablePerfectOC()
+ .calculate();
assertEquals(2048 >> 10, calculator.getDuration(), messageDuration);
assertEquals(VP[6], calculator.getConsumption(), messageEUt);
}
@@ -75,89 +100,127 @@ class GT_OverclockCalculator_UnitTest {
void weirdHeatEBF_Test() {
int heatDiscounts = 3;
long correctConsumption = (long) Math.ceil(VP[6] * Math.pow(0.95, heatDiscounts));
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setDuration(2048).enableHeatOC().enableHeatDiscount().setRecipeHeat(486).setMultiHeat(3900)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(2048)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .setRecipeHeat(486)
+ .setMultiHeat(3900)
+ .calculate();
assertEquals(2048 >> 6, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@Test
void doubleEnergyHatchOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6] + V[6])
- .setAmperage(2).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6] + V[6])
+ .setAmperage(2)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 6, calculator.getDuration(), messageDuration);
assertEquals(VP[7], calculator.getConsumption(), messageEUt);
}
@Test
void multiAmpHatchOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setAmperage(256).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setAmperage(256)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 9, calculator.getDuration(), messageDuration);
assertEquals(VP[10], calculator.getConsumption(), messageEUt);
}
@Test
void weirdAmpHatchOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setAmperage(320).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setAmperage(320)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 9, calculator.getDuration(), messageDuration);
assertEquals(VP[10], calculator.getConsumption(), messageEUt);
}
@Test
void parallelImperfectOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[8]).setAmperage(4)
- .setDuration(1024).setParallel(16).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[8])
+ .setAmperage(4)
+ .setDuration(1024)
+ .setParallel(16)
+ .calculate();
assertEquals(1024 >> 6, calculator.getDuration(), messageDuration);
assertEquals(VP[9], calculator.getConsumption(), messageEUt);
}
@Test
void parallelPerfectOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[8]).setAmperage(4)
- .setDuration(4096).setParallel(16).enablePerfectOC().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[8])
+ .setAmperage(4)
+ .setDuration(4096)
+ .setParallel(16)
+ .enablePerfectOC()
+ .calculate();
assertEquals(4096 >> 12, calculator.getDuration(), messageDuration);
assertEquals(VP[9], calculator.getConsumption(), messageEUt);
}
@Test
void parallelMultiAmpOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setAmperage(320).setDuration(1024).setParallel(16).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setAmperage(320)
+ .setDuration(1024)
+ .setParallel(16)
+ .calculate();
assertEquals(1024 >> 7, calculator.getDuration(), messageDuration);
assertEquals(VP[10], calculator.getConsumption(), messageEUt);
}
@Test
void weirdParallelOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[8])
- .setDuration(1024).setParallel(8).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[8])
+ .setDuration(1024)
+ .setParallel(8)
+ .calculate();
assertEquals(1024 >> 5, calculator.getDuration(), messageDuration);
assertEquals(VP[6] * 8, calculator.getConsumption(), messageEUt);
}
@Test
void weirdParallelAndAmpsOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[8])
- .setAmperage(320).setDuration(1024).setParallel(8).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[8])
+ .setAmperage(320)
+ .setDuration(1024)
+ .setParallel(8)
+ .calculate();
assertEquals(1024 >> 9, calculator.getDuration(), messageDuration);
assertEquals(VP[6] * 8 * 256, calculator.getConsumption(), messageEUt);
}
@Test
void weirdTimeOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setDuration(77).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(77)
+ .calculate();
assertEquals(77 >> 5, calculator.getDuration(), messageDuration);
assertEquals(VP[6], calculator.getConsumption(), messageEUt);
}
@Test
void stopsCorrectlyWhenOneTicking_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6]).setDuration(1)
- .calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(1)
+ .calculate();
assertEquals(1, calculator.getDuration(), messageDuration);
assertEquals(VP[1], calculator.getConsumption(), messageEUt);
}
@@ -165,8 +228,11 @@ class GT_OverclockCalculator_UnitTest {
@Test
void imperfectOCWithEUtDiscount_Test() {
long correctConsumption = (long) Math.ceil(VP[1] * 0.9f) << 10;
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setEUtDiscount(0.9f).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setEUtDiscount(0.9f)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 5, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@@ -174,48 +240,71 @@ class GT_OverclockCalculator_UnitTest {
@Test
void perfectOCWithEUtDiscount_Test() {
long correctConsumption = (long) Math.ceil(VP[1] * 0.9f) << 10;
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setEUtDiscount(0.9f).setDuration(1024).enablePerfectOC().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setEUtDiscount(0.9f)
+ .setDuration(1024)
+ .enablePerfectOC()
+ .calculate();
assertEquals(1024 >> 10, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@Test
void imperfectOCWithSpeedBoost_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setSpeedBoost(0.9f).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setSpeedBoost(0.9f)
+ .setDuration(1024)
+ .calculate();
assertEquals((int) (1024 * 0.9f) >> 5, calculator.getDuration(), messageDuration);
assertEquals(VP[6], calculator.getConsumption(), messageEUt);
}
@Test
void perfectOCWithSpeedBoost_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setSpeedBoost(0.9f).setDuration(2048).enablePerfectOC().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setSpeedBoost(0.9f)
+ .setDuration(2048)
+ .enablePerfectOC()
+ .calculate();
assertEquals((int) (2048 * 0.9f) >> 10, calculator.getDuration(), messageDuration);
assertEquals(VP[6], calculator.getConsumption(), messageEUt);
}
@Test
void oneTickDiscountTurnsToOne_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6]).setDuration(1)
- .enableOneTickDiscount().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setDuration(1)
+ .enableOneTickDiscount()
+ .calculate();
assertEquals(1, calculator.getDuration(), messageDuration);
assertEquals(1, calculator.getConsumption(), messageEUt);
}
@Test
void oneTickDiscountImperfectOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setSpeedBoost(1.1f).setDuration(4).enableOneTickDiscount().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setSpeedBoost(1.1f)
+ .setDuration(4)
+ .enableOneTickDiscount()
+ .calculate();
assertEquals(1, calculator.getDuration(), messageDuration);
assertEquals(480 >> 3, calculator.getConsumption(), messageEUt);
}
@Test
void oneTickDiscountPerfectOC_Test() {
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1]).setEUt(V[6])
- .setSpeedBoost(1.1f).setDuration(16).enablePerfectOC().enableOneTickDiscount().calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[1])
+ .setEUt(V[6])
+ .setSpeedBoost(1.1f)
+ .setDuration(16)
+ .enablePerfectOC()
+ .enableOneTickDiscount()
+ .calculate();
assertEquals(1, calculator.getDuration(), messageDuration);
assertEquals(480 >> 6, calculator.getConsumption(), messageEUt);
}
@@ -223,8 +312,11 @@ class GT_OverclockCalculator_UnitTest {
@Test
void ulvRecipeWithDiscount_Test() {
long correctConsumption = (long) Math.ceil((VP[0] << 10) * 0.9f);
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[0]).setEUt(V[6])
- .setEUtDiscount(0.9f).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[0])
+ .setEUt(V[6])
+ .setEUtDiscount(0.9f)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 5, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}
@@ -232,8 +324,12 @@ class GT_OverclockCalculator_UnitTest {
@Test
void ulvRecipeWithDiscountWithParallel_Test() {
long correctConsumption = (long) Math.ceil((VP[0] << 6) * 14 * 0.9f);
- GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[0]).setEUt(V[5])
- .setEUtDiscount(0.9f).setParallel(14).setDuration(1024).calculate();
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[0])
+ .setEUt(V[5])
+ .setEUtDiscount(0.9f)
+ .setParallel(14)
+ .setDuration(1024)
+ .calculate();
assertEquals(1024 >> 3, calculator.getDuration(), messageDuration);
assertEquals(correctConsumption, calculator.getConsumption(), messageEUt);
}