mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-11 19:14:11 +00:00
chore:
- Extracted generator sampling and running engine pack data to testsupport Ref.: https://github.com/VolmitSoftware/Iris/issues/1251
This commit is contained in:
@@ -2,17 +2,15 @@ package art.arcane.iris.generation.terrain;
|
||||
|
||||
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.RunningEnginePackData;
|
||||
import art.arcane.volmlib.util.math.RNG;
|
||||
import art.arcane.volmlib.util.noise.CNG;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks;
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ContinentGeneratorTest {
|
||||
private static final long WORLD_SEED = 7L;
|
||||
@@ -24,7 +22,7 @@ public class ContinentGeneratorTest {
|
||||
private static final double[] CONTINENT_MAP_OF_EXISTING_WORLDS =
|
||||
{0.21889892332042843D, 0.6984934456740721D, 0.2708759584352327D};
|
||||
|
||||
private final IrisData packData = createPackDataThatBelongsToOneRunningEngine();
|
||||
private final IrisData packData = RunningEnginePackData.create();
|
||||
private final IrisDimension baseZoomDimension = createDimensionWithContinentZoom(POWER_OF_TWO_CONTINENT_ZOOM);
|
||||
private final IrisDimension squaredZoomDimension = createDimensionWithContinentZoom(SQUARED_CONTINENT_ZOOM);
|
||||
private final IrisDimension overworldStyleDimension = createDimensionWithOverworldContinentalStyle();
|
||||
@@ -99,14 +97,6 @@ public class ContinentGeneratorTest {
|
||||
return sampleAtBlocks(ContinentGenerator.create(dimension, new RNG(WORLD_SEED), packData), blocks);
|
||||
}
|
||||
|
||||
private static double[] sampleAtBlocks(CNG continentGenerator, double[][] blocks) {
|
||||
return Arrays.stream(blocks).mapToDouble(block -> sampleAt(continentGenerator, block)).toArray();
|
||||
}
|
||||
|
||||
private static double sampleAt(CNG continentGenerator, double[] block) {
|
||||
return continentGenerator.noise(block[0], block[1]);
|
||||
}
|
||||
|
||||
private static double[][] shrinkByContinentZoom(double[][] blocks) {
|
||||
return Arrays.stream(blocks).map(block -> shrinkByContinentZoom(block)).toArray(double[][]::new);
|
||||
}
|
||||
@@ -134,14 +124,4 @@ public class ContinentGeneratorTest {
|
||||
private static IrisGeneratorStyle createSmokeFracture() {
|
||||
return new IrisGeneratorStyle(NoiseStyle.FRACTAL_SMOKE).setFracture(new IrisGeneratorStyle(NoiseStyle.STATIC));
|
||||
}
|
||||
|
||||
private static IrisData createPackDataThatBelongsToOneRunningEngine() {
|
||||
IrisData newPackData = mock(IrisData.class);
|
||||
bindToNewRunningEngine(newPackData);
|
||||
return newPackData;
|
||||
}
|
||||
|
||||
private static void bindToNewRunningEngine(IrisData packData) {
|
||||
when(packData.getEngine()).thenReturn(mock(Engine.class));
|
||||
}
|
||||
}
|
||||
|
||||
+4
-22
@@ -2,20 +2,16 @@ package art.arcane.iris.generation.terrain;
|
||||
|
||||
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.iris.testsupport.RunningEnginePackData;
|
||||
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;
|
||||
|
||||
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks;
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class IrisDimensionCarvingEntryTest {
|
||||
private static final String SHARED_CHILD_STYLE_GENERATOR_BUG =
|
||||
@@ -26,7 +22,7 @@ public class IrisDimensionCarvingEntryTest {
|
||||
private static final double CHILD_SHRINK_FACTOR = 4D;
|
||||
private static final double[][] SAMPLE_BLOCKS = {{1000D, -2000D}, {12.5D, -7.25D}, {-517D, 333D}};
|
||||
|
||||
private final IrisData packData = createPackDataThatBelongsToOneRunningEngine();
|
||||
private final IrisData packData = RunningEnginePackData.create();
|
||||
private final IrisDimensionCarvingEntry carvingEntry = createCarvingEntry();
|
||||
|
||||
@Rule
|
||||
@@ -48,17 +44,13 @@ public class IrisDimensionCarvingEntryTest {
|
||||
}
|
||||
|
||||
private double[] sampleSharedChildStyleGenerator(IrisGeneratorStyle childStyle) {
|
||||
return sampleAtBlocks(childStyle.create(deriveSharedChildStyleSeed(), packData));
|
||||
return sampleAtBlocks(childStyle.create(deriveSharedChildStyleSeed(), packData), SAMPLE_BLOCKS);
|
||||
}
|
||||
|
||||
private RNG deriveSharedChildStyleSeed() {
|
||||
return IrisDimensionCarvingEntry.deriveChildStyleSeed(carvingEntry.deriveChildrenGeneratorSeed(WORLD_SEED));
|
||||
}
|
||||
|
||||
private static double[] sampleAtBlocks(CNG generator) {
|
||||
return Arrays.stream(SAMPLE_BLOCKS).mapToDouble(block -> generator.noise(block[0], block[1])).toArray();
|
||||
}
|
||||
|
||||
private static IrisDimensionCarvingEntry createCarvingEntry() {
|
||||
return withShrinkingSimplexChildStyle(new IrisDimensionCarvingEntry().setId(CARVING_ENTRY_ID));
|
||||
}
|
||||
@@ -70,14 +62,4 @@ public class IrisDimensionCarvingEntryTest {
|
||||
private static IrisGeneratorStyle createSimplexStyle() {
|
||||
return new IrisGeneratorStyle(NoiseStyle.SIMPLEX);
|
||||
}
|
||||
|
||||
private static IrisData createPackDataThatBelongsToOneRunningEngine() {
|
||||
IrisData newPackData = mock(IrisData.class);
|
||||
bindToNewRunningEngine(newPackData);
|
||||
return newPackData;
|
||||
}
|
||||
|
||||
private static void bindToNewRunningEngine(IrisData packData) {
|
||||
when(packData.getEngine()).thenReturn(mock(Engine.class));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package art.arcane.iris.testsupport;
|
||||
|
||||
import art.arcane.volmlib.util.noise.CNG;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public final class GeneratorSampling {
|
||||
private GeneratorSampling() {
|
||||
}
|
||||
|
||||
public static double[] sampleAtBlocks(CNG generator, double[][] blocks) {
|
||||
return Arrays.stream(blocks).mapToDouble(block -> sampleAt(generator, block)).toArray();
|
||||
}
|
||||
|
||||
private static double sampleAt(CNG generator, double[] block) {
|
||||
return generator.noise(block[0], block[1]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package art.arcane.iris.testsupport;
|
||||
|
||||
import art.arcane.iris.generation.runtime.Engine;
|
||||
import art.arcane.iris.pack.loading.IrisData;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public final class RunningEnginePackData {
|
||||
private RunningEnginePackData() {
|
||||
}
|
||||
|
||||
public static IrisData create() {
|
||||
IrisData packData = mock(IrisData.class);
|
||||
when(packData.getEngine()).thenReturn(mock(Engine.class));
|
||||
return packData;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user