@@ -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