From 7e73e8f599e542499f583feed445c76cf4d7a417 Mon Sep 17 00:00:00 2001 From: CeeVeeR Date: Fri, 2 Oct 2026 05:12:47 +0200 Subject: [PATCH] test: - Added rebuild test, expected to fail until the fix Ref.: https://github.com/VolmitSoftware/Iris/issues/1251 --- .../terrain/ContinentGeneratorTest.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/src/test/java/art/arcane/iris/generation/terrain/ContinentGeneratorTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/ContinentGeneratorTest.java index 21f3edac6..d1588f6d0 100644 --- a/core/src/test/java/art/arcane/iris/generation/terrain/ContinentGeneratorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/ContinentGeneratorTest.java @@ -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); }