Building / Fixed some tests
This commit is contained in:
@@ -8,9 +8,9 @@ import mindustry.content.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.core.GameState.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.entities.type.base.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.io.*;
|
||||
import mindustry.maps.*;
|
||||
import mindustry.net.Net;
|
||||
@@ -103,8 +103,8 @@ public class ApplicationTests{
|
||||
Time.update();
|
||||
Time.update();
|
||||
Time.setDeltaProvider(() -> 1f);
|
||||
unitGroup.update();
|
||||
assertFalse(unitGroup.isEmpty(), "No enemies spawned.");
|
||||
Groups.unit.update();
|
||||
assertFalse(Groups.unit.isEmpty(), "No enemies spawned.");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -335,18 +335,18 @@ public class ApplicationTests{
|
||||
void buildingOverlap(){
|
||||
initBuilding();
|
||||
|
||||
BuilderDrone d1 = (BuilderDrone)UnitTypes.phantom.create(Team.sharded);
|
||||
BuilderDrone d2 = (BuilderDrone)UnitTypes.phantom.create(Team.sharded);
|
||||
Builderc d1 = (Builderc)UnitTypes.phantom.create(Team.sharded);
|
||||
Builderc d2 = (Builderc)UnitTypes.phantom.create(Team.sharded);
|
||||
|
||||
d1.set(10f, 20f);
|
||||
d2.set(10f, 20f);
|
||||
|
||||
d1.addBuildRequest(new BuildRequest(0, 0, 0, Blocks.copperWallLarge));
|
||||
d2.addBuildRequest(new BuildRequest(1, 1, 0, Blocks.copperWallLarge));
|
||||
d1.addBuild(new BuildRequest(0, 0, 0, Blocks.copperWallLarge));
|
||||
d2.addBuild(new BuildRequest(1, 1, 0, Blocks.copperWallLarge));
|
||||
|
||||
Time.setDeltaProvider(() -> 9999999f);
|
||||
d1.updateBuilding();
|
||||
d2.updateBuilding();
|
||||
d1.update();
|
||||
d2.update();
|
||||
|
||||
assertEquals(Blocks.copperWallLarge, world.tile(0, 0).block());
|
||||
assertEquals(Blocks.air, world.tile(2, 2).block());
|
||||
@@ -357,26 +357,26 @@ public class ApplicationTests{
|
||||
void buildingDestruction(){
|
||||
initBuilding();
|
||||
|
||||
BuilderDrone d1 = (BuilderDrone)UnitTypes.phantom.create(Team.sharded);
|
||||
BuilderDrone d2 = (BuilderDrone)UnitTypes.phantom.create(Team.sharded);
|
||||
Builderc d1 = (Builderc)UnitTypes.phantom.create(Team.sharded);
|
||||
Builderc d2 = (Builderc)UnitTypes.phantom.create(Team.sharded);
|
||||
|
||||
d1.set(10f, 20f);
|
||||
d2.set(10f, 20f);
|
||||
|
||||
d1.addBuildRequest(new BuildRequest(0, 0, 0, Blocks.copperWallLarge));
|
||||
d2.addBuildRequest(new BuildRequest(1, 1));
|
||||
d1.addBuild(new BuildRequest(0, 0, 0, Blocks.copperWallLarge));
|
||||
d2.addBuild(new BuildRequest(1, 1));
|
||||
|
||||
Time.setDeltaProvider(() -> 3f);
|
||||
d1.updateBuilding();
|
||||
d1.update();
|
||||
Time.setDeltaProvider(() -> 1f);
|
||||
d2.updateBuilding();
|
||||
d2.update();
|
||||
|
||||
assertEquals(content.getByName(ContentType.block, "build2"), world.tile(0, 0).block());
|
||||
|
||||
Time.setDeltaProvider(() -> 9999f);
|
||||
|
||||
d1.updateBuilding();
|
||||
d2.updateBuilding();
|
||||
d1.update();
|
||||
d2.update();
|
||||
|
||||
assertEquals(Blocks.air, world.tile(0, 0).block());
|
||||
assertEquals(Blocks.air, world.tile(2, 2).block());
|
||||
@@ -414,8 +414,8 @@ public class ApplicationTests{
|
||||
}catch(Throwable t){
|
||||
fail("Failed to update block '" + tile.block() + "'.", t);
|
||||
}
|
||||
assertEquals(tile.block(), tile.entity.block);
|
||||
assertEquals(tile.block().health, tile.entity.health);
|
||||
assertEquals(tile.block(), tile.entity.block());
|
||||
assertEquals(tile.block().health, tile.entity.health());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.io.*;
|
||||
import org.junit.jupiter.api.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.*;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
@@ -50,9 +47,9 @@ public class IOTests{
|
||||
rules.attackMode = true;
|
||||
rules.buildSpeedMultiplier = 99f;
|
||||
|
||||
TypeIO.writeRules(buffer, rules);
|
||||
TypeIO.writeRules(new Writes(new ByteBufferOutput(buffer)), rules);
|
||||
buffer.position(0);
|
||||
Rules res = TypeIO.readRules(buffer);
|
||||
Rules res = TypeIO.readRules(new Reads(new ByteBufferInput(buffer)));
|
||||
|
||||
assertEquals(rules.buildSpeedMultiplier, res.buildSpeedMultiplier);
|
||||
assertEquals(rules.attackMode, res.attackMode);
|
||||
|
||||
@@ -37,8 +37,8 @@ public class DirectConsumerTests extends PowerTestFixture{
|
||||
consumes.power(requestedPower);
|
||||
consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30));
|
||||
}});
|
||||
consumertile.entity.items().add(Items.silicon, siliconAmount);
|
||||
consumertile.entity.items().add(Items.lead, leadAmount);
|
||||
consumerTile.entity.items().add(Items.silicon, siliconAmount);
|
||||
consumerTile.entity.items().add(Items.lead, leadAmount);
|
||||
|
||||
Tile producerTile = createFakeTile(2, 0, createFakeProducerBlock(producedPower));
|
||||
producerTile.<PowerGenerator.GeneratorEntity>ent().productionEfficiency = 1f;
|
||||
@@ -50,6 +50,6 @@ public class DirectConsumerTests extends PowerTestFixture{
|
||||
consumerTile.entity.update();
|
||||
graph.update();
|
||||
|
||||
assertEquals(expectedSatisfaction, consumertile.entity.power().status);
|
||||
assertEquals(expectedSatisfaction, consumerTile.entity.power().status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package power;
|
||||
|
||||
import arc.*;
|
||||
import arc.mock.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.content.*;
|
||||
@@ -14,7 +15,7 @@ import org.junit.jupiter.api.*;
|
||||
|
||||
import java.lang.reflect.*;
|
||||
|
||||
import static mindustry.Vars.content;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
/**
|
||||
* This class provides objects commonly used by power related unit tests.
|
||||
@@ -26,8 +27,11 @@ public class PowerTestFixture{
|
||||
|
||||
@BeforeAll
|
||||
static void initializeDependencies(){
|
||||
headless = true;
|
||||
Core.graphics = new FakeGraphics();
|
||||
Core.files = new MockFiles();
|
||||
Vars.state = new GameState();
|
||||
Vars.tree = new FileTree();
|
||||
Vars.content = new ContentLoader(){
|
||||
@Override
|
||||
public void handleMappableContent(MappableContent content){
|
||||
@@ -87,11 +91,11 @@ public class PowerTestFixture{
|
||||
|
||||
// Simulate the "changed" method. Calling it through reflections would require half the game to be initialized.
|
||||
tile.entity = block.newEntity().init(tile, false);
|
||||
tile.entity.cons() = new ConsumeModule(tile.entity);
|
||||
if(block.hasItems) tile.entity.items() = new ItemModule();
|
||||
if(block.hasLiquids) tile.entity.liquids() = new LiquidModule();
|
||||
tile.entity.cons(new ConsumeModule(tile.entity));
|
||||
if(block.hasItems) tile.entity.items(new ItemModule());
|
||||
if(block.hasLiquids) tile.entity.liquids(new LiquidModule());
|
||||
if(block.hasPower){
|
||||
tile.entity.power() = new PowerModule();
|
||||
tile.entity.power(new PowerModule());
|
||||
tile.entity.power().graph = new PowerGraph(){
|
||||
//assume there's always something consuming power
|
||||
@Override
|
||||
@@ -104,7 +108,7 @@ public class PowerTestFixture{
|
||||
|
||||
// Assign incredibly high health so the block does not get destroyed on e.g. burning Blast Compound
|
||||
block.health = 100000;
|
||||
tile.entity.health = 100000.0f;
|
||||
tile.entity.health(100000.0f);
|
||||
|
||||
return tile;
|
||||
}catch(Exception ex){
|
||||
|
||||
@@ -66,7 +66,7 @@ public class PowerTests extends PowerTestFixture{
|
||||
|
||||
// Update and check for the expected power status of the consumer
|
||||
powerGraph.update();
|
||||
assertEquals(expectedSatisfaction, directConsumertile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match");
|
||||
assertEquals(expectedSatisfaction, directConsumerTile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -104,14 +104,14 @@ public class PowerTests extends PowerTestFixture{
|
||||
}
|
||||
float maxCapacity = 100f;
|
||||
Tile batteryTile = createFakeTile(0, 2, createFakeBattery(maxCapacity));
|
||||
batterytile.entity.power().status = initialBatteryCapacity / maxCapacity;
|
||||
batteryTile.entity.power().status = initialBatteryCapacity / maxCapacity;
|
||||
|
||||
powerGraph.add(batteryTile);
|
||||
|
||||
powerGraph.update();
|
||||
assertEquals(expectedBatteryCapacity / maxCapacity, batterytile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Expected battery status did not match");
|
||||
assertEquals(expectedBatteryCapacity / maxCapacity, batteryTile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Expected battery status did not match");
|
||||
if(directConsumerTile != null){
|
||||
assertEquals(expectedSatisfaction, directConsumertile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match");
|
||||
assertEquals(expectedSatisfaction, directConsumerTile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,13 +127,13 @@ public class PowerTests extends PowerTestFixture{
|
||||
powerGraph.add(consumerTile);
|
||||
powerGraph.update();
|
||||
|
||||
assertEquals(1.0f, consumertile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR);
|
||||
assertEquals(1.0f, consumerTile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR);
|
||||
|
||||
powerGraph.remove(producerTile);
|
||||
powerGraph.add(consumerTile);
|
||||
powerGraph.update();
|
||||
|
||||
assertEquals(0.0f, consumertile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR);
|
||||
assertEquals(0.0f, consumerTile.entity.power().status, Mathf.FLOAT_ROUNDING_ERROR);
|
||||
if(consumerTile.block().consumes.hasPower()){
|
||||
ConsumePower consumePower = consumerTile.block().consumes.getPower();
|
||||
assertFalse(consumePower.valid(consumerTile.ent()));
|
||||
|
||||
Reference in New Issue
Block a user