Skip to content

Commit f05736d

Browse files
committed
test both simulation and execution
1 parent 014b63d commit f05736d

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

src/test/java/mekanism/common/integration/energy/forgeenergy/EnergyConversionTest.java

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,16 @@ void testJoulesAsFESmallEmptyToFull() {
3434
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
3535

3636
//sanity check nothing can be extracted
37+
int extractedSimulate = feHandler.extractEnergy(JOULES_CAPACITY, true);
3738
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
39+
Assertions.assertEquals(extractedSimulate, extracted, "Simulation should be the same");
3840
assertValueEqual(extracted, 0, "extracted energy (fe)");
3941
assertValueEqual(feHandler.getMaxEnergyStored(), FE_CAPACITY, "FE capacity");
4042

4143
//insert more than the FE capacity, check it capped at FE max
44+
int acceptedSimulate = feHandler.receiveEnergy(JOULES_CAPACITY, true);
4245
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
46+
Assertions.assertEquals(acceptedSimulate, accepted, "Simulation should be the same");
4347
assertValueEqual(accepted, FE_CAPACITY, "Accepted FE");
4448
assertValueEqual(feHandler.getEnergyStored(), FE_CAPACITY, "stored energy (fe)");
4549
assertValueEqual(joulesContainer.getEnergy(), (long) JOULES_CAPACITY, "stored energy (joules)");
@@ -51,7 +55,9 @@ void testJoulesAsFESmallEmptySubUnit() {
5155
var joulesContainer = BasicEnergyContainer.create(JOULES_CAPACITY, null);
5256

5357
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
58+
int acceptedSimulate = feHandler.receiveEnergy(1, true);
5459
int accepted = feHandler.receiveEnergy(1, false);
60+
assertValueEqual(acceptedSimulate, 0, "accepted energy");
5561
assertValueEqual(accepted, 0, "accepted energy");
5662
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy");
5763
assertValueEqual(joulesContainer.getEnergy(), 0L, "raw stored energy");
@@ -65,11 +71,15 @@ void testJoulesAsFESmallFull() {
6571
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
6672

6773
//try to insert to full container
68-
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
74+
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
75+
assertValueEqual(accepted, 0, "accepted energy when full");
76+
accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
6977
assertValueEqual(accepted, 0, "accepted energy when full");
7078

7179
//extract beyond converted capacity
72-
int extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, false);
80+
int extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, true);
81+
assertValueEqual(extractedFE, FE_CAPACITY, "extracted energy (fe)");
82+
extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, false);
7383
assertValueEqual(extractedFE, FE_CAPACITY, "extracted energy (fe)");
7484
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy (fe)");
7585
assertValueEqual(joulesContainer.getEnergy(), 0L, "stored energy (joules)");
@@ -89,7 +99,9 @@ void testJoulesAsFENearlyFullNoAccept() {
8999
assertValueEqual(feHandler.getEnergyStored(), FE_CAPACITY - 1, "stored energy");
90100
assertValueEqual(feHandler.getMaxEnergyStored(), FE_CAPACITY, "max energy");
91101

92-
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
102+
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
103+
assertValueEqual(accepted, 0, "accepted energy (fe)");
104+
accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
93105
assertValueEqual(accepted, 0, "accepted energy (fe)");
94106
assertValueEqual(joulesContainer.getEnergy(), (long) JOULES_CAPACITY - 2, "joules contents");
95107
}
@@ -105,7 +117,9 @@ void testJoulesAsFEFullContainerPartialStore() {
105117
//sanity check.
106118
assertValueEqual(feHandler.getEnergyStored(), 398, "stored energy");
107119

108-
int accepted = feHandler.receiveEnergy(1000, false);
120+
int accepted = feHandler.receiveEnergy(1000, true);
121+
assertValueEqual(accepted, 0, "accepted energy (fe)");
122+
accepted = feHandler.receiveEnergy(1000, false);
109123
assertValueEqual(joulesContainer.getEnergy(), 997L, "stored joules after insert");
110124
assertValueEqual(accepted, 0, "accepted energy (fe)");
111125
}
@@ -118,7 +132,9 @@ void testJoulesAsFEExtractNotEnough() {
118132
joulesContainer.setEnergy(2);
119133
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
120134

121-
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
135+
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, true);
136+
assertValueEqual(extracted, 0, "extracted energy (fe)");
137+
extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
122138
assertValueEqual(extracted, 0, "extracted energy (fe)");
123139
assertValueEqual(joulesContainer.getEnergy(), 2L, "stored energy (joules)");
124140
}
@@ -134,7 +150,10 @@ void testJoulesAsFEInsertPartialStore() {
134150
//sanity check.
135151
assertValueEqual(feHandler.getEnergyStored(), 396, "stored energy");
136152

137-
int accepted = feHandler.receiveEnergy(1000, false);
153+
int accepted = feHandler.receiveEnergy(1000, true);
154+
assertValueEqual(accepted, 2, "accepted energy (fe)");
155+
156+
accepted = feHandler.receiveEnergy(1000, false);
138157
assertValueEqual(joulesContainer.getEnergy(), 997L, "stored joules after insert");
139158
assertValueEqual(accepted, 2, "accepted energy (fe)");
140159
}
@@ -149,7 +168,10 @@ void testJoulesAsFEEmptyContainerPartialStore() {
149168
//sanity check.
150169
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy (fe)");
151170

152-
int accepted = feHandler.receiveEnergy(3, false);
171+
int accepted = feHandler.receiveEnergy(3, true);
172+
assertValueEqual(accepted, 2, "accepted energy (fe)");
173+
174+
accepted = feHandler.receiveEnergy(3, false);
153175
assertValueEqual(joulesContainer.getEnergy(), 5L, "stored joules after insert");
154176
assertValueEqual(accepted, 2, "accepted energy (fe)");
155177
}
@@ -162,7 +184,10 @@ void testJoulesAsFEExtractPartial() {
162184
joulesContainer.setEnergy(8);
163185
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
164186

165-
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
187+
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, true);
188+
assertValueEqual(extracted, 2, "extracted energy (fe)");
189+
190+
extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
166191
assertValueEqual(extracted, 2, "extracted energy (fe)");
167192
assertValueEqual(joulesContainer.getEnergy(), 3L, "stored energy (joules)");
168193
}
@@ -175,7 +200,10 @@ void testJoulesAsFECantFit() {
175200
joulesContainer.setEnergy(0);
176201
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
177202

178-
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
203+
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
204+
assertValueEqual(accepted, 0, "accepted energy (fe)");
205+
206+
accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
179207
assertValueEqual(accepted, 0, "accepted energy (fe)");
180208
assertValueEqual(joulesContainer.getEnergy(), 0L, "stored energy (joules)");
181209
}
@@ -188,11 +216,16 @@ void testFEAsJoulesFillToMax() {
188216
EnergyStorage feContainer = new EnergyStorage(FE_CAPACITY, FE_CAPACITY, FE_CAPACITY, 0);
189217
IStrictEnergyHandler joulesHandler = new ForgeStrictEnergyHandler(feContainer, getConverter(CONVERSION_RATE));
190218

191-
long extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.EXECUTE);
219+
long extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.SIMULATE);
220+
assertValueEqual(extractedJoules, 0L, "extracted energy (joules) from empty");
221+
extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.EXECUTE);
192222
assertValueEqual(extractedJoules, 0L, "extracted energy (joules) from empty");
193223
assertValueEqual(joulesHandler.getMaxEnergy(0), (long) JOULES_CAPACITY, "max energy (joules)");
194224

195-
long joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
225+
long joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.SIMULATE);
226+
assertValueEqual(joulesRemaining, 0L, "remaining inserted energy (joules)");
227+
228+
joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
196229
assertValueEqual(joulesRemaining, 0L, "remaining inserted energy (joules)");
197230
assertValueEqual(joulesHandler.getEnergy(0), (long) JOULES_CAPACITY, "stored energy");
198231
}
@@ -203,9 +236,13 @@ void testFEAsJoules() {
203236
EnergyStorage feStorage = new EnergyStorage(JOULES_CAPACITY, JOULES_CAPACITY, JOULES_CAPACITY, JOULES_CAPACITY);
204237
IStrictEnergyHandler handler = new ForgeStrictEnergyHandler(feStorage, getConverter(CONVERSION_RATE));
205238

206-
long remainder = handler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
239+
long remainder = handler.insertEnergy(JOULES_CAPACITY, Action.SIMULATE);
207240
assertValueEqual(remainder, (long) JOULES_CAPACITY, "remaining inserted energy");
208-
long extracted = handler.extractEnergy(JOULES_CAPACITY, Action.EXECUTE);
241+
remainder = handler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
242+
assertValueEqual(remainder, (long) JOULES_CAPACITY, "remaining inserted energy");
243+
long extracted = handler.extractEnergy(JOULES_CAPACITY, Action.SIMULATE);
244+
assertValueEqual(extracted, (long) JOULES_CAPACITY, "extracted energy");
245+
extracted = handler.extractEnergy(JOULES_CAPACITY, Action.EXECUTE);
209246
assertValueEqual(extracted, (long) JOULES_CAPACITY, "extracted energy");
210247
assertValueEqual(handler.getEnergy(0), (long) (CONVERSION_RATE * JOULES_CAPACITY) - JOULES_CAPACITY, "stored energy");
211248
}

0 commit comments

Comments
 (0)