Skip to content

Commit

Permalink
test both simulation and execution
Browse files Browse the repository at this point in the history
  • Loading branch information
thiakil committed Jul 27, 2024
1 parent 014b63d commit f05736d
Showing 1 changed file with 50 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,16 @@ void testJoulesAsFESmallEmptyToFull() {
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);

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

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

IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);
int acceptedSimulate = feHandler.receiveEnergy(1, true);
int accepted = feHandler.receiveEnergy(1, false);
assertValueEqual(acceptedSimulate, 0, "accepted energy");
assertValueEqual(accepted, 0, "accepted energy");
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy");
assertValueEqual(joulesContainer.getEnergy(), 0L, "raw stored energy");
Expand All @@ -65,11 +71,15 @@ void testJoulesAsFESmallFull() {
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);

//try to insert to full container
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
assertValueEqual(accepted, 0, "accepted energy when full");
accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
assertValueEqual(accepted, 0, "accepted energy when full");

//extract beyond converted capacity
int extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, false);
int extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, true);
assertValueEqual(extractedFE, FE_CAPACITY, "extracted energy (fe)");
extractedFE = feHandler.extractEnergy(JOULES_CAPACITY, false);
assertValueEqual(extractedFE, FE_CAPACITY, "extracted energy (fe)");
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy (fe)");
assertValueEqual(joulesContainer.getEnergy(), 0L, "stored energy (joules)");
Expand All @@ -89,7 +99,9 @@ void testJoulesAsFENearlyFullNoAccept() {
assertValueEqual(feHandler.getEnergyStored(), FE_CAPACITY - 1, "stored energy");
assertValueEqual(feHandler.getMaxEnergyStored(), FE_CAPACITY, "max energy");

int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
assertValueEqual(accepted, 0, "accepted energy (fe)");
accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
assertValueEqual(accepted, 0, "accepted energy (fe)");
assertValueEqual(joulesContainer.getEnergy(), (long) JOULES_CAPACITY - 2, "joules contents");
}
Expand All @@ -105,7 +117,9 @@ void testJoulesAsFEFullContainerPartialStore() {
//sanity check.
assertValueEqual(feHandler.getEnergyStored(), 398, "stored energy");

int accepted = feHandler.receiveEnergy(1000, false);
int accepted = feHandler.receiveEnergy(1000, true);
assertValueEqual(accepted, 0, "accepted energy (fe)");
accepted = feHandler.receiveEnergy(1000, false);
assertValueEqual(joulesContainer.getEnergy(), 997L, "stored joules after insert");
assertValueEqual(accepted, 0, "accepted energy (fe)");
}
Expand All @@ -118,7 +132,9 @@ void testJoulesAsFEExtractNotEnough() {
joulesContainer.setEnergy(2);
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);

int extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, true);
assertValueEqual(extracted, 0, "extracted energy (fe)");
extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
assertValueEqual(extracted, 0, "extracted energy (fe)");
assertValueEqual(joulesContainer.getEnergy(), 2L, "stored energy (joules)");
}
Expand All @@ -134,7 +150,10 @@ void testJoulesAsFEInsertPartialStore() {
//sanity check.
assertValueEqual(feHandler.getEnergyStored(), 396, "stored energy");

int accepted = feHandler.receiveEnergy(1000, false);
int accepted = feHandler.receiveEnergy(1000, true);
assertValueEqual(accepted, 2, "accepted energy (fe)");

accepted = feHandler.receiveEnergy(1000, false);
assertValueEqual(joulesContainer.getEnergy(), 997L, "stored joules after insert");
assertValueEqual(accepted, 2, "accepted energy (fe)");
}
Expand All @@ -149,7 +168,10 @@ void testJoulesAsFEEmptyContainerPartialStore() {
//sanity check.
assertValueEqual(feHandler.getEnergyStored(), 0, "stored energy (fe)");

int accepted = feHandler.receiveEnergy(3, false);
int accepted = feHandler.receiveEnergy(3, true);
assertValueEqual(accepted, 2, "accepted energy (fe)");

accepted = feHandler.receiveEnergy(3, false);
assertValueEqual(joulesContainer.getEnergy(), 5L, "stored joules after insert");
assertValueEqual(accepted, 2, "accepted energy (fe)");
}
Expand All @@ -162,7 +184,10 @@ void testJoulesAsFEExtractPartial() {
joulesContainer.setEnergy(8);
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);

int extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
int extracted = feHandler.extractEnergy(JOULES_CAPACITY, true);
assertValueEqual(extracted, 2, "extracted energy (fe)");

extracted = feHandler.extractEnergy(JOULES_CAPACITY, false);
assertValueEqual(extracted, 2, "extracted energy (fe)");
assertValueEqual(joulesContainer.getEnergy(), 3L, "stored energy (joules)");
}
Expand All @@ -175,7 +200,10 @@ void testJoulesAsFECantFit() {
joulesContainer.setEnergy(0);
IEnergyStorage feHandler = createForgeWrappedStrictEnergyHandler(joulesContainer, CONVERSION_RATE);

int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
int accepted = feHandler.receiveEnergy(JOULES_CAPACITY, true);
assertValueEqual(accepted, 0, "accepted energy (fe)");

accepted = feHandler.receiveEnergy(JOULES_CAPACITY, false);
assertValueEqual(accepted, 0, "accepted energy (fe)");
assertValueEqual(joulesContainer.getEnergy(), 0L, "stored energy (joules)");
}
Expand All @@ -188,11 +216,16 @@ void testFEAsJoulesFillToMax() {
EnergyStorage feContainer = new EnergyStorage(FE_CAPACITY, FE_CAPACITY, FE_CAPACITY, 0);
IStrictEnergyHandler joulesHandler = new ForgeStrictEnergyHandler(feContainer, getConverter(CONVERSION_RATE));

long extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.EXECUTE);
long extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.SIMULATE);
assertValueEqual(extractedJoules, 0L, "extracted energy (joules) from empty");
extractedJoules = joulesHandler.extractEnergy(FE_CAPACITY, Action.EXECUTE);
assertValueEqual(extractedJoules, 0L, "extracted energy (joules) from empty");
assertValueEqual(joulesHandler.getMaxEnergy(0), (long) JOULES_CAPACITY, "max energy (joules)");

long joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
long joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.SIMULATE);
assertValueEqual(joulesRemaining, 0L, "remaining inserted energy (joules)");

joulesRemaining = joulesHandler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
assertValueEqual(joulesRemaining, 0L, "remaining inserted energy (joules)");
assertValueEqual(joulesHandler.getEnergy(0), (long) JOULES_CAPACITY, "stored energy");
}
Expand All @@ -203,9 +236,13 @@ void testFEAsJoules() {
EnergyStorage feStorage = new EnergyStorage(JOULES_CAPACITY, JOULES_CAPACITY, JOULES_CAPACITY, JOULES_CAPACITY);
IStrictEnergyHandler handler = new ForgeStrictEnergyHandler(feStorage, getConverter(CONVERSION_RATE));

long remainder = handler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
long remainder = handler.insertEnergy(JOULES_CAPACITY, Action.SIMULATE);
assertValueEqual(remainder, (long) JOULES_CAPACITY, "remaining inserted energy");
long extracted = handler.extractEnergy(JOULES_CAPACITY, Action.EXECUTE);
remainder = handler.insertEnergy(JOULES_CAPACITY, Action.EXECUTE);
assertValueEqual(remainder, (long) JOULES_CAPACITY, "remaining inserted energy");
long extracted = handler.extractEnergy(JOULES_CAPACITY, Action.SIMULATE);
assertValueEqual(extracted, (long) JOULES_CAPACITY, "extracted energy");
extracted = handler.extractEnergy(JOULES_CAPACITY, Action.EXECUTE);
assertValueEqual(extracted, (long) JOULES_CAPACITY, "extracted energy");
assertValueEqual(handler.getEnergy(0), (long) (CONVERSION_RATE * JOULES_CAPACITY) - JOULES_CAPACITY, "stored energy");
}
Expand Down

0 comments on commit f05736d

Please sign in to comment.