}
@Test
public void removeSolidAndLight() {
StubPropagatorWorldView worldView = new StubPropagatorWorldView(testingRegion);
for (Vector3i pos : Region3i.createFromCenterExtents(new Vector3i(1, 0, 0), new Vector3i(0, 30, 30))) {
worldView.setBlockAt(pos, solid);
}
worldView.setBlockAt(new Vector3i(0, 0, 0), fullLight);
BatchPropagator propagator = new StandardBatchPropagator(lightRules, worldView);
propagator.process(new BlockChange(new Vector3i(0, 0, 0), air, fullLight));
assertEquals(0, worldView.getValueAt(new Vector3i(1, 0, 0)));
worldView.setBlockAt(new Vector3i(1, 0, 0), air);
worldView.setBlockAt(new Vector3i(0, 0, 0), air);
propagator.process(new BlockChange(new Vector3i(1, 0, 0), solid, air), new BlockChange(new Vector3i(0, 0, 0), fullLight, air));
for (int i = 0; i < fullLight.getLuminance() + 1; ++i) {
byte expectedLuminance = (byte) 0;
for (Vector3i pos : Diamond3iIterator.iterateAtDistance(Vector3i.zero(), i)) {
assertEquals(expectedLuminance, worldView.getValueAt(pos));