- Added rebuild test, expected to fail until the fix

Ref.: https://github.com/VolmitSoftware/Iris/issues/1251
This commit is contained in:
CeeVeeR
2026-10-02 05:12:47 +02:00
parent 788ac06713
commit 7e73e8f599
@@ -4,8 +4,11 @@ import art.arcane.iris.generation.noise.IrisGeneratorStyle;
import art.arcane.iris.generation.noise.NoiseStyle;
import art.arcane.iris.generation.runtime.Engine;
import art.arcane.iris.pack.loading.IrisData;
import art.arcane.iris.testsupport.ExpectedToFailUntilFixed;
import art.arcane.iris.testsupport.ExpectedToFailUntilFixedRule;
import art.arcane.volmlib.util.math.RNG;
import art.arcane.volmlib.util.noise.CNG;
import org.junit.Rule;
import org.junit.Test;
import java.util.Arrays;
@@ -15,6 +18,9 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class ContinentGeneratorTest {
private static final String SHARED_STYLE_GENERATOR_BUG =
"ContinentGenerator scales the shared style generator instead of a private one. "
+ "Ref.: https://github.com/VolmitSoftware/Iris/issues/1251";
private static final long WORLD_SEED = 7L;
private static final double POWER_OF_TWO_CONTINENT_ZOOM = 4D;
private static final double SQUARED_CONTINENT_ZOOM = POWER_OF_TWO_CONTINENT_ZOOM * POWER_OF_TWO_CONTINENT_ZOOM;
@@ -27,6 +33,9 @@ public class ContinentGeneratorTest {
private final IrisDimension baseZoomDimension = createDimensionWithContinentZoom(POWER_OF_TWO_CONTINENT_ZOOM);
private final IrisDimension squaredZoomDimension = createDimensionWithContinentZoom(SQUARED_CONTINENT_ZOOM);
@Rule
public final ExpectedToFailUntilFixedRule expectedFailures = new ExpectedToFailUntilFixedRule();
@Test
public void doesTheContinentMapAtWorldStartMatchExistingWorlds() {
assertArrayEquals(CONTINENT_MAP_OF_EXISTING_WORLDS, sampleContinentMapAtWorldStart(baseZoomDimension), 0D);
@@ -38,6 +47,12 @@ public class ContinentGeneratorTest {
sampleContinentMapAtWorldStart(squaredZoomDimension), 0D);
}
@ExpectedToFailUntilFixed(SHARED_STYLE_GENERATOR_BUG)
@Test
public void doesRebuildingTheSameWorldZoomItsContinentMapOnlyOnce() {
assertArrayEquals(CONTINENT_MAP_OF_EXISTING_WORLDS, sampleContinentMapAfterRebuild(baseZoomDimension), 0D);
}
private double[] sampleContinentMapAtWorldStart(IrisDimension dimension) {
return sampleContinentMap(dimension, SAMPLE_BLOCKS);
}
@@ -46,6 +61,11 @@ public class ContinentGeneratorTest {
return sampleContinentMap(baseZoomDimension, BLOCKS_SHRUNK_BY_CONTINENT_ZOOM);
}
private double[] sampleContinentMapAfterRebuild(IrisDimension dimension) {
sampleContinentMapAtWorldStart(dimension);
return sampleContinentMapAtWorldStart(dimension);
}
private double[] sampleContinentMap(IrisDimension dimension, double[][] blocks) {
return sampleAtBlocks(ContinentGenerator.create(dimension, new RNG(WORLD_SEED), packData), blocks);
}