diff --git a/src/main/java/mesh/modifier/RandomHolesModifier.java b/src/main/java/mesh/modifier/RandomHolesModifier.java index 5fbd1cef..36e7cb94 100644 --- a/src/main/java/mesh/modifier/RandomHolesModifier.java +++ b/src/main/java/mesh/modifier/RandomHolesModifier.java @@ -212,19 +212,6 @@ public float getMinAmount() { return minAmount; } - /** - * Sets the minimum hole percentage. - * - * @param minAmount the minimum hole percentage. Must be in the range [0, 1]. - * @throws IllegalArgumentException if {@code minAmount} is out of range or - * greater than the current - * {@code maxAmount}. - */ - public void setMinAmount(float minAmount) { - validateAmountRange(minAmount, maxAmount); - this.minAmount = minAmount; - } - /** * Gets the maximum hole percentage. * @@ -234,18 +221,6 @@ public float getMaxAmount() { return maxAmount; } - /** - * Sets the maximum hole percentage. - * - * @param maxAmount the maximum hole percentage. Must be in the range [0, 1]. - * @throws IllegalArgumentException if {@code maxAmount} is out of range or - * less than the current {@code minAmount}. - */ - public void setMaxAmount(float maxAmount) { - validateAmountRange(minAmount, maxAmount); - this.maxAmount = maxAmount; - } - /** * Validates that the given range of amounts is within acceptable bounds. *

diff --git a/src/test/java/mesh/modifier/test/RandomHolesModifierFaceCollectionOperationTest.java b/src/test/java/mesh/modifier/test/RandomHolesModifierFaceCollectionOperationTest.java index 118b2319..c3946d9f 100644 --- a/src/test/java/mesh/modifier/test/RandomHolesModifierFaceCollectionOperationTest.java +++ b/src/test/java/mesh/modifier/test/RandomHolesModifierFaceCollectionOperationTest.java @@ -34,14 +34,14 @@ public void returnsNonNullMesh() { Mesh3D mesh = new CubeCreator().create(); assertNotNull(modifier.modify(mesh, new ArrayList())); } - + @Test public void nullMeshThrowsException() { assertThrows(IllegalArgumentException.class, () -> { modifier.modify(null, new ArrayList()); }); } - + @Test public void nullCollcetionThrowsException() { ArrayList faces = null; @@ -49,7 +49,7 @@ public void nullCollcetionThrowsException() { modifier.modify(new Mesh3D(), faces); }); } - + @Test public void testFaceCountModifyAllCubeFaces() { Mesh3D cube = new CubeCreator().create(); @@ -57,7 +57,7 @@ public void testFaceCountModifyAllCubeFaces() { modifier.modify(cube, faces); assertEquals(24, cube.getFaceCount()); } - + @Test public void testFaceCountModifyTwoCubeFaces() { Mesh3D cube = new CubeCreator().create(); @@ -67,7 +67,7 @@ public void testFaceCountModifyTwoCubeFaces() { modifier.modify(cube, faces); assertEquals(12, cube.getFaceCount()); } - + @Test public void testVertexCountModifyAllCubeFaces() { Mesh3D cube = new CubeCreator().create(); @@ -75,7 +75,7 @@ public void testVertexCountModifyAllCubeFaces() { modifier.modify(cube, faces); assertEquals(32, cube.getVertexCount()); } - + @Test public void testVertexCountModifyTwoCubeFaces() { Mesh3D cube = new CubeCreator().create(); @@ -85,45 +85,18 @@ public void testVertexCountModifyTwoCubeFaces() { modifier.modify(cube, faces); assertEquals(16, cube.getVertexCount()); } - - @ParameterizedTest - @ValueSource(longs = { - 0, - 4432, - 245, - -14332, - -13423293, - 4324243, - Long.MAX_VALUE, - Long.MIN_VALUE - }) - public void testFacesWithDifferentSeeds(long seed) { - int[][] expected = new int[][] { - {3,0,9,8}, - {0,1,10,9}, - {1,2,11,10}, - {2,3,8,11}, - {6,5,13,12}, - {5,4,14,13}, - {4,7,15,14}, - {7,6,12,15}, - {1,0,17,16}, - {0,4,18,17}, - {4,5,19,18}, - {5,1,16,19}, - {1,5,21,20}, - {5,6,22,21}, - {6,2,23,22}, - {2,1,20,23}, - {6,7,25,24}, - {7,3,26,25}, - {3,2,27,26}, - {2,6,24,27}, - {3,7,29,28}, - {7,4,30,29}, - {4,0,31,30}, - {0,3,28,31} - }; + + @ParameterizedTest + @ValueSource(longs = { 0, 4432, 245, -14332, -13423293, 4324243, + Long.MAX_VALUE, Long.MIN_VALUE }) + public void testFacesWithDifferentSeeds(long seed) { + int[][] expected = new int[][] { { 3, 0, 9, 8 }, { 0, 1, 10, 9 }, + { 1, 2, 11, 10 }, { 2, 3, 8, 11 }, { 6, 5, 13, 12 }, { 5, 4, 14, 13 }, + { 4, 7, 15, 14 }, { 7, 6, 12, 15 }, { 1, 0, 17, 16 }, { 0, 4, 18, 17 }, + { 4, 5, 19, 18 }, { 5, 1, 16, 19 }, { 1, 5, 21, 20 }, { 5, 6, 22, 21 }, + { 6, 2, 23, 22 }, { 2, 1, 20, 23 }, { 6, 7, 25, 24 }, { 7, 3, 26, 25 }, + { 3, 2, 27, 26 }, { 2, 6, 24, 27 }, { 3, 7, 29, 28 }, { 7, 4, 30, 29 }, + { 4, 0, 31, 30 }, { 0, 3, 28, 31 } }; Mesh3D mesh = new CubeCreator().create(); modifier.setSeed(seed); modifier.modify(mesh, mesh.getFaces()); @@ -131,39 +104,33 @@ public void testFacesWithDifferentSeeds(long seed) { int[] actual = mesh.getFaceAt(i).indices; assertArrayEquals(expected[i], actual); } - } - + } + @Test public void testPlaneVerticesWithZeroSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.6847742f, 0.0f, -0.6847742f), - new Vector3f(0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, -0.6847742f) - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.6847742f, 0.0f, -0.6847742f), + new Vector3f(0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, -0.6847742f) }; ArrayList faces = new ArrayList(); Mesh3D plane = new PlaneCreator().create(); faces.add(plane.getFaceAt(0)); modifier.modify(plane, faces); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithPositiveSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.31211585f, 0.0f, -0.31211585f), - new Vector3f(0.31211585f, 0.0f, 0.31211585f), - new Vector3f(-0.31211585f, 0.0f, 0.31211585f), - new Vector3f(-0.31211585f, 0.0f, -0.31211585f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.31211585f, 0.0f, -0.31211585f), + new Vector3f(0.31211585f, 0.0f, 0.31211585f), + new Vector3f(-0.31211585f, 0.0f, 0.31211585f), + new Vector3f(-0.31211585f, 0.0f, -0.31211585f), }; ArrayList faces = new ArrayList(); Mesh3D plane = new PlaneCreator().create(); faces.add(plane.getFaceAt(0)); @@ -171,19 +138,16 @@ public void testPlaneVerticesWithPositiveSeeed() { modifier.modify(plane, faces); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithNegativeSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.2969781f, 0.0f, -0.2969781f), - new Vector3f(0.2969781f, 0.0f, 0.2969781f), - new Vector3f(-0.2969781f, 0.0f, 0.2969781f), - new Vector3f(-0.2969781f, 0.0f, -0.2969781f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.2969781f, 0.0f, -0.2969781f), + new Vector3f(0.2969781f, 0.0f, 0.2969781f), + new Vector3f(-0.2969781f, 0.0f, 0.2969781f), + new Vector3f(-0.2969781f, 0.0f, -0.2969781f), }; ArrayList faces = new ArrayList(); Mesh3D plane = new PlaneCreator().create(); faces.add(plane.getFaceAt(0)); @@ -191,19 +155,16 @@ public void testPlaneVerticesWithNegativeSeeed() { modifier.modify(plane, faces); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithSeedMaxLong() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.31515408f, 0.0f, -0.31515408f), - new Vector3f(0.31515408f, 0.0f, 0.31515408f), - new Vector3f(-0.31515408f, 0.0f, 0.31515408f), - new Vector3f(-0.31515408f, 0.0f, -0.31515408f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.31515408f, 0.0f, -0.31515408f), + new Vector3f(0.31515408f, 0.0f, 0.31515408f), + new Vector3f(-0.31515408f, 0.0f, 0.31515408f), + new Vector3f(-0.31515408f, 0.0f, -0.31515408f), }; ArrayList faces = new ArrayList(); Mesh3D plane = new PlaneCreator().create(); faces.add(plane.getFaceAt(0)); @@ -211,19 +172,16 @@ public void testPlaneVerticesWithSeedMaxLong() { modifier.modify(plane, faces); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithSeedMinLong() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.6847742f, 0.0f, -0.6847742f), - new Vector3f(0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, -0.6847742f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.6847742f, 0.0f, -0.6847742f), + new Vector3f(0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, -0.6847742f), }; ArrayList faces = new ArrayList(); Mesh3D plane = new PlaneCreator().create(); faces.add(plane.getFaceAt(0)); @@ -231,61 +189,45 @@ public void testPlaneVerticesWithSeedMinLong() { modifier.modify(plane, faces); assertArrayEquals(expected, plane.vertices.toArray()); } - - @Test - public void tesCubeVerticesWithPositiveSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f, -1.0f, -1.0f), - new Vector3f(1.0f, -1.0f, 1.0f), - new Vector3f(-1.0f, -1.0f, 1.0f), - new Vector3f(-1.0f, -1.0f, -1.0f), - new Vector3f(1.0f, 1.0f, -1.0f), - new Vector3f(1.0f, 1.0f, 1.0f), - new Vector3f(-1.0f, 1.0f, 1.0f), - new Vector3f(-1.0f, 1.0f, -1.0f), - new Vector3f(-1.0f, 0.2517369f, 0.2517369f), - new Vector3f(-1.0f, 0.2517369f, -0.2517369f), - new Vector3f(-1.0f, -0.2517369f, -0.2517369f), - new Vector3f(-1.0f, -0.2517369f, 0.2517369f), - }; + + @Test + public void tesCubeVerticesWithPositiveSeed() { + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, -1.0f, -1.0f), + new Vector3f(1.0f, -1.0f, 1.0f), new Vector3f(-1.0f, -1.0f, 1.0f), + new Vector3f(-1.0f, -1.0f, -1.0f), new Vector3f(1.0f, 1.0f, -1.0f), + new Vector3f(1.0f, 1.0f, 1.0f), new Vector3f(-1.0f, 1.0f, 1.0f), + new Vector3f(-1.0f, 1.0f, -1.0f), + new Vector3f(-1.0f, 0.2517369f, 0.2517369f), + new Vector3f(-1.0f, 0.2517369f, -0.2517369f), + new Vector3f(-1.0f, -0.2517369f, -0.2517369f), + new Vector3f(-1.0f, -0.2517369f, 0.2517369f), }; Mesh3D mesh = new CubeCreator().create(); ArrayList faces = new ArrayList(); faces.add(mesh.getFaceAt(4)); + modifier = new RandomHolesModifier(0.1f, 0.3f); modifier.setSeed(234453); - modifier.setMinAmount(0.1f); - modifier.setMaxAmount(0.3f); modifier.modify(mesh, faces); assertArrayEquals(expected, mesh.vertices.toArray()); - } - - @ParameterizedTest - @ValueSource(floats = { - 0.1f, - 0.322f, - 0.123f, - 0.022f, - 0.245f, - 0.751f, - 0.965f, - Float.MIN_VALUE, - Float.MAX_VALUE, - }) - public void testMinMaxAmountPositiveValuesAndSeed(float amount) { - Mesh3D expected = new PlaneCreator().create(); - ExtrudeModifier extrudeModifier = new ExtrudeModifier(); - extrudeModifier.setRemoveFaces(true); - extrudeModifier.setScale(amount); - extrudeModifier.setAmount(0); - expected.apply(extrudeModifier); - - Mesh3D actual = new PlaneCreator().create(); - ArrayList faces = new ArrayList(); - faces.add(actual.getFaceAt(0)); - modifier.setMinAmount(amount); - modifier.setMaxAmount(amount); - modifier.setSeed(234); - modifier.modify(actual, faces); + } + + @ParameterizedTest + @ValueSource(floats = { 0.1f, 0.322f, 0.123f, 0.022f, 0.245f, 0.751f, + 0.965f }) + public void testMinMaxAmountPositiveValuesAndSeed(float amount) { + Mesh3D expected = new PlaneCreator().create(); + ExtrudeModifier extrudeModifier = new ExtrudeModifier(); + extrudeModifier.setRemoveFaces(true); + extrudeModifier.setScale(amount); + extrudeModifier.setAmount(0); + expected.apply(extrudeModifier); + + Mesh3D actual = new PlaneCreator().create(); + ArrayList faces = new ArrayList(); + faces.add(actual.getFaceAt(0)); + modifier = new RandomHolesModifier(amount, amount); + modifier.setSeed(234); + modifier.modify(actual, faces); assertArrayEquals(expected.vertices.toArray(), actual.vertices.toArray()); - } - + } + } diff --git a/src/test/java/mesh/modifier/test/RandomHolesModifierSingleFaceOperationTest.java b/src/test/java/mesh/modifier/test/RandomHolesModifierSingleFaceOperationTest.java index c8d8e58b..8dfad498 100644 --- a/src/test/java/mesh/modifier/test/RandomHolesModifierSingleFaceOperationTest.java +++ b/src/test/java/mesh/modifier/test/RandomHolesModifierSingleFaceOperationTest.java @@ -61,7 +61,7 @@ public void nullFaceThrowsException() { modifier.modify(new Mesh3D(), face); }); } - + @Test public void nullMeshAndNullFaceThrowsException() { Mesh3D mesh = null; @@ -103,191 +103,143 @@ public void testVertexCountCube(int faceIndex) { @Test public void testPlaneVerticesWithZeroSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.6847742f, 0.0f, -0.6847742f), - new Vector3f(0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, -0.6847742f) - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.6847742f, 0.0f, -0.6847742f), + new Vector3f(0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, -0.6847742f) }; Mesh3D plane = new PlaneCreator().create(); modifier.modify(plane, plane.getFaceAt(0)); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithPositiveSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.31211585f, 0.0f, -0.31211585f), - new Vector3f(0.31211585f, 0.0f, 0.31211585f), - new Vector3f(-0.31211585f, 0.0f, 0.31211585f), - new Vector3f(-0.31211585f, 0.0f, -0.31211585f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.31211585f, 0.0f, -0.31211585f), + new Vector3f(0.31211585f, 0.0f, 0.31211585f), + new Vector3f(-0.31211585f, 0.0f, 0.31211585f), + new Vector3f(-0.31211585f, 0.0f, -0.31211585f), }; Mesh3D plane = new PlaneCreator().create(); modifier.setSeed(13424); modifier.modify(plane, plane.getFaceAt(0)); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithNegativeSeeed() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.2969781f, 0.0f, -0.2969781f), - new Vector3f(0.2969781f, 0.0f, 0.2969781f), - new Vector3f(-0.2969781f, 0.0f, 0.2969781f), - new Vector3f(-0.2969781f, 0.0f, -0.2969781f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.2969781f, 0.0f, -0.2969781f), + new Vector3f(0.2969781f, 0.0f, 0.2969781f), + new Vector3f(-0.2969781f, 0.0f, 0.2969781f), + new Vector3f(-0.2969781f, 0.0f, -0.2969781f), }; Mesh3D plane = new PlaneCreator().create(); modifier.setSeed(-3244324); modifier.modify(plane, plane.getFaceAt(0)); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithSeedMaxLong() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.31515408f, 0.0f, -0.31515408f), - new Vector3f(0.31515408f, 0.0f, 0.31515408f), - new Vector3f(-0.31515408f, 0.0f, 0.31515408f), - new Vector3f(-0.31515408f, 0.0f, -0.31515408f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.31515408f, 0.0f, -0.31515408f), + new Vector3f(0.31515408f, 0.0f, 0.31515408f), + new Vector3f(-0.31515408f, 0.0f, 0.31515408f), + new Vector3f(-0.31515408f, 0.0f, -0.31515408f), }; Mesh3D plane = new PlaneCreator().create(); modifier.setSeed(Long.MAX_VALUE); modifier.modify(plane, plane.getFaceAt(0)); assertArrayEquals(expected, plane.vertices.toArray()); } - + @Test public void testPlaneVerticesWithSeedMinLong() { - Vector3f[] expected = { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.6847742f, 0.0f, -0.6847742f), - new Vector3f(0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, -0.6847742f), - }; + Vector3f[] expected = { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.6847742f, 0.0f, -0.6847742f), + new Vector3f(0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, -0.6847742f), }; Mesh3D plane = new PlaneCreator().create(); modifier.setSeed(Long.MIN_VALUE); modifier.modify(plane, plane.getFaceAt(0)); assertArrayEquals(expected, plane.vertices.toArray()); } - - @Test - public void tesCubeVerticesWithPositiveSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f, -1.0f, -1.0f), - new Vector3f(1.0f, -1.0f, 1.0f), - new Vector3f(-1.0f, -1.0f, 1.0f), - new Vector3f(-1.0f, -1.0f, -1.0f), - new Vector3f(1.0f, 1.0f, -1.0f), - new Vector3f(1.0f, 1.0f, 1.0f), - new Vector3f(-1.0f, 1.0f, 1.0f), - new Vector3f(-1.0f, 1.0f, -1.0f), - new Vector3f(-1.0f, 0.2517369f, 0.2517369f), - new Vector3f(-1.0f, 0.2517369f, -0.2517369f), - new Vector3f(-1.0f, -0.2517369f, -0.2517369f), - new Vector3f(-1.0f, -0.2517369f, 0.2517369f), - }; + + @Test + public void tesCubeVerticesWithPositiveSeed() { + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, -1.0f, -1.0f), + new Vector3f(1.0f, -1.0f, 1.0f), new Vector3f(-1.0f, -1.0f, 1.0f), + new Vector3f(-1.0f, -1.0f, -1.0f), new Vector3f(1.0f, 1.0f, -1.0f), + new Vector3f(1.0f, 1.0f, 1.0f), new Vector3f(-1.0f, 1.0f, 1.0f), + new Vector3f(-1.0f, 1.0f, -1.0f), + new Vector3f(-1.0f, 0.2517369f, 0.2517369f), + new Vector3f(-1.0f, 0.2517369f, -0.2517369f), + new Vector3f(-1.0f, -0.2517369f, -0.2517369f), + new Vector3f(-1.0f, -0.2517369f, 0.2517369f), }; Mesh3D mesh = new CubeCreator().create(); + + modifier = new RandomHolesModifier(0.1f, 0.3f); modifier.setSeed(234453); - modifier.setMinAmount(0.1f); - modifier.setMaxAmount(0.3f); modifier.modify(mesh, mesh.getFaceAt(4)); assertArrayEquals(expected, mesh.vertices.toArray()); - } - + } + @Test public void testCubeFacesWithPositiveSeed() { - int[][] expected = new int[][] { - {3,0,1,2}, - {6,5,4,7}, - {1,0,4,5}, - {1,5,6,2}, - {3,7,4,0}, - {6,7,9,8}, - {7,3,10,9}, - {3,2,11,10}, - {2,6,8,11}, - }; + int[][] expected = new int[][] { { 3, 0, 1, 2 }, { 6, 5, 4, 7 }, + { 1, 0, 4, 5 }, { 1, 5, 6, 2 }, { 3, 7, 4, 0 }, { 6, 7, 9, 8 }, + { 7, 3, 10, 9 }, { 3, 2, 11, 10 }, { 2, 6, 8, 11 }, }; Mesh3D mesh = new CubeCreator().create(); + modifier = new RandomHolesModifier(0.1f, 0.3f); modifier.setSeed(234453); - modifier.setMinAmount(0.1f); - modifier.setMaxAmount(0.3f); modifier.modify(mesh, mesh.getFaceAt(4)); for (int i = 0; i < mesh.getFaceCount(); i++) { int[] actual = mesh.getFaceAt(i).indices; assertArrayEquals(expected[i], actual); } } - + @ParameterizedTest - @ValueSource(longs = { - 0, - 13424, - -3244324, - Long.MAX_VALUE, - Long.MIN_VALUE}) + @ValueSource(longs = { 0, 13424, -3244324, Long.MAX_VALUE, Long.MIN_VALUE }) public void testPlaneFaceIndicesWithSeeds(long seed) { - int[][] expected = new int[][] { - {0,1,5,4}, - {1,2,6,5}, - {2,3,7,6}, - {3,0,4,7}, - }; + int[][] expected = new int[][] { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, + { 2, 3, 7, 6 }, { 3, 0, 4, 7 }, }; Mesh3D mesh = new PlaneCreator().create(); modifier.setSeed(seed); modifier.modify(mesh); for (int i = 0; i < mesh.getFaceCount(); i++) { int[] actual = mesh.getFaceAt(i).indices; assertArrayEquals(expected[i], actual); - } + } } - - @ParameterizedTest - @ValueSource(floats = { - 0.1f, - 0.322f, - 0.123f, - 0.022f, - 0.245f, - 0.751f, - 0.965f, - Float.MIN_VALUE, - Float.MAX_VALUE, - }) - public void testMinMaxAmountPositiveValuesAndSeed(float amount) { - Mesh3D expected = new PlaneCreator().create(); - ExtrudeModifier extrudeModifier = new ExtrudeModifier(); - extrudeModifier.setRemoveFaces(true); - extrudeModifier.setScale(amount); - extrudeModifier.setAmount(0); - expected.apply(extrudeModifier); - - Mesh3D actual = new PlaneCreator().create(); - modifier.setMinAmount(amount); - modifier.setMaxAmount(amount); - modifier.setSeed(234); - modifier.modify(actual, actual.getFaceAt(0)); + + @ParameterizedTest + @ValueSource(floats = { 0.1f, 0.322f, 0.123f, 0.022f, 0.245f, 0.751f, + 0.965f, }) + public void testMinMaxAmountPositiveValuesAndSeed(float amount) { + Mesh3D expected = new PlaneCreator().create(); + ExtrudeModifier extrudeModifier = new ExtrudeModifier(); + extrudeModifier.setRemoveFaces(true); + extrudeModifier.setScale(amount); + extrudeModifier.setAmount(0); + expected.apply(extrudeModifier); + + Mesh3D actual = new PlaneCreator().create(); + modifier = new RandomHolesModifier(amount, amount); + modifier.setSeed(234); + modifier.modify(actual, actual.getFaceAt(0)); assertArrayEquals(expected.vertices.toArray(), actual.vertices.toArray()); - } - + } + } diff --git a/src/test/java/mesh/modifier/test/RandomHolesModifierTest.java b/src/test/java/mesh/modifier/test/RandomHolesModifierTest.java index b706c019..b8eb49ff 100644 --- a/src/test/java/mesh/modifier/test/RandomHolesModifierTest.java +++ b/src/test/java/mesh/modifier/test/RandomHolesModifierTest.java @@ -38,7 +38,7 @@ public void modifyMeshReturnsNonNullMesh() { Mesh3D mesh = modifier.modify(new CubeCreator().create()); assertNotNull(mesh); } - + @Test public void modifyFaceReturnsNonNullMesh() { Mesh3D mesh = new CubeCreator().create(); @@ -51,7 +51,7 @@ public void modifyMeshreturnsReferenceToModifiedMesh() { Mesh3D actual = modifier.modify(expected); assertSame(expected, actual); } - + @Test public void testDefaultSeed() { assertEquals(0, modifier.getSeed()); @@ -70,26 +70,12 @@ public void testDefaultMinAmount() { assertEquals(expected, modifier.getMinAmount()); } - @Test - public void testGetSetMinAmount() { - float expected = 0.3321f; - modifier.setMinAmount(expected); - assertEquals(expected, modifier.getMinAmount()); - } - @Test public void testDefaultMaxAmount() { float expected = 0.9f; assertEquals(expected, modifier.getMaxAmount()); } - @Test - public void testGetSetMaxAmount() { - float expected = 0.83334f; - modifier.setMaxAmount(expected); - assertEquals(expected, modifier.getMaxAmount()); - } - @Test public void faceCountPlane() { Mesh3D mesh = new PlaneCreator().create(); @@ -99,111 +85,91 @@ public void faceCountPlane() { @Test public void testVerticesPlaneWithZeroSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f, 0.0f, -1.0f), - new Vector3f(1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, 1.0f), - new Vector3f(-1.0f, 0.0f, -1.0f), - new Vector3f(0.6847742f, 0.0f, -0.6847742f), - new Vector3f(0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, 0.6847742f), - new Vector3f(-0.6847742f, 0.0f, -0.6847742f) - }; + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.6847742f, 0.0f, -0.6847742f), + new Vector3f(0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, 0.6847742f), + new Vector3f(-0.6847742f, 0.0f, -0.6847742f) }; Mesh3D mesh = new PlaneCreator().create(); modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testVerticesPlaneWithPositiveSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f,0.0f,-1.0f), - new Vector3f(1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,-1.0f), - new Vector3f(0.62473404f,0.0f,-0.62473404f), - new Vector3f(0.62473404f,0.0f,0.62473404f), - new Vector3f(-0.62473404f,0.0f,0.62473404f), - new Vector3f(-0.62473404f,0.0f,-0.62473404f) - }; - + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.62473404f, 0.0f, -0.62473404f), + new Vector3f(0.62473404f, 0.0f, 0.62473404f), + new Vector3f(-0.62473404f, 0.0f, 0.62473404f), + new Vector3f(-0.62473404f, 0.0f, -0.62473404f) }; + Mesh3D mesh = new PlaneCreator().create(); modifier.setSeed(1321441); modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testVerticesPlaneWithNegativeSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f,0.0f,-1.0f), - new Vector3f(1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,-1.0f), - new Vector3f(0.3719052f,0.0f,-0.3719052f), - new Vector3f(0.3719052f,0.0f,0.3719052f), - new Vector3f(-0.3719052f,0.0f,0.3719052f), - new Vector3f(-0.3719052f,0.0f,-0.3719052f), - }; - + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.3719052f, 0.0f, -0.3719052f), + new Vector3f(0.3719052f, 0.0f, 0.3719052f), + new Vector3f(-0.3719052f, 0.0f, 0.3719052f), + new Vector3f(-0.3719052f, 0.0f, -0.3719052f), }; + Mesh3D mesh = new PlaneCreator().create(); modifier.setSeed(-133221441); modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testVerticesWithMinMaxAndPositiveSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f,0.0f,-1.0f), - new Vector3f(1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,-1.0f), - new Vector3f(0.7055122f,0.0f,-0.7055122f), - new Vector3f(0.7055122f,0.0f,0.7055122f), - new Vector3f(-0.7055122f,0.0f,0.7055122f), - new Vector3f(-0.7055122f,0.0f,-0.7055122f) - }; + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.7055122f, 0.0f, -0.7055122f), + new Vector3f(0.7055122f, 0.0f, 0.7055122f), + new Vector3f(-0.7055122f, 0.0f, 0.7055122f), + new Vector3f(-0.7055122f, 0.0f, -0.7055122f) }; Mesh3D mesh = new PlaneCreator().create(); - modifier.setMinAmount(0.24f); - modifier.setMaxAmount(0.9872f); + modifier = new RandomHolesModifier(0.24f, 0.9872f); modifier.setSeed(2323424); modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testVerticesWithMinMaxAndNegativeSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f,0.0f,-1.0f), - new Vector3f(1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,-1.0f), - new Vector3f(0.63038445f,0.0f,-0.63038445f), - new Vector3f(0.63038445f,0.0f,0.63038445f), - new Vector3f(-0.63038445f,0.0f,0.63038445f), - new Vector3f(-0.63038445f,0.0f,-0.63038445f), - }; + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.63038445f, 0.0f, -0.63038445f), + new Vector3f(0.63038445f, 0.0f, 0.63038445f), + new Vector3f(-0.63038445f, 0.0f, 0.63038445f), + new Vector3f(-0.63038445f, 0.0f, -0.63038445f), }; Mesh3D mesh = new PlaneCreator().create(); - modifier.setMinAmount(0.2344f); - modifier.setMaxAmount(0.87f); + modifier = new RandomHolesModifier(0.2344f, 0.87f); modifier.setSeed(2323424); modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testVerticesWithMinMaxContstuctorAndPositiveSeed() { - Vector3f[] expected = new Vector3f[] { - new Vector3f(1.0f,0.0f,-1.0f), - new Vector3f(1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,1.0f), - new Vector3f(-1.0f,0.0f,-1.0f), - new Vector3f(0.7055122f,0.0f,-0.7055122f), - new Vector3f(0.7055122f,0.0f,0.7055122f), - new Vector3f(-0.7055122f,0.0f,0.7055122f), - new Vector3f(-0.7055122f,0.0f,-0.7055122f) - }; + Vector3f[] expected = new Vector3f[] { new Vector3f(1.0f, 0.0f, -1.0f), + new Vector3f(1.0f, 0.0f, 1.0f), new Vector3f(-1.0f, 0.0f, 1.0f), + new Vector3f(-1.0f, 0.0f, -1.0f), + new Vector3f(0.7055122f, 0.0f, -0.7055122f), + new Vector3f(0.7055122f, 0.0f, 0.7055122f), + new Vector3f(-0.7055122f, 0.0f, 0.7055122f), + new Vector3f(-0.7055122f, 0.0f, -0.7055122f) }; float minAmount = 0.24f; float maxAmount = 0.9872f; Mesh3D mesh = new PlaneCreator().create(); @@ -212,15 +178,11 @@ public void testVerticesWithMinMaxContstuctorAndPositiveSeed() { modifier.modify(mesh); assertArrayEquals(expected, mesh.vertices.toArray()); } - + @Test public void testPlaneFacesWithZeroSeed() { - int[][] expected = new int[][] { - {0,1,5,4}, - {1,2,6,5}, - {2,3,7,6}, - {3,0,4,7} - }; + int[][] expected = new int[][] { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, + { 2, 3, 7, 6 }, { 3, 0, 4, 7 } }; Mesh3D mesh = new PlaneCreator().create(); modifier.modify(mesh); for (int i = 0; i < mesh.getFaceCount(); i++) { @@ -228,25 +190,13 @@ public void testPlaneFacesWithZeroSeed() { assertArrayEquals(expected[i], actual); } } - - @ParameterizedTest - @ValueSource(longs = { - 0, - 1000, - 134424, - -14, - -1342424293, - 432424229, - Long.MAX_VALUE, - Long.MIN_VALUE - }) + + @ParameterizedTest + @ValueSource(longs = { 0, 1000, 134424, -14, -1342424293, 432424229, + Long.MAX_VALUE, Long.MIN_VALUE }) public void testPlaneFacesWithDifferentSeeds(long seed) { - int[][] expected = new int[][] { - {0,1,5,4}, - {1,2,6,5}, - {2,3,7,6}, - {3,0,4,7} - }; + int[][] expected = new int[][] { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, + { 2, 3, 7, 6 }, { 3, 0, 4, 7 } }; Mesh3D mesh = new PlaneCreator().create(); modifier.setSeed(seed); modifier.modify(mesh); @@ -255,45 +205,18 @@ public void testPlaneFacesWithDifferentSeeds(long seed) { assertArrayEquals(expected[i], actual); } } - - @ParameterizedTest - @ValueSource(longs = { - 0, - 1000, - 134424, - -14, - -1342424293, - 432424229, - Long.MAX_VALUE, - Long.MIN_VALUE - }) - public void testFacesWithDifferentSeeds(long seed) { - int[][] expected = new int[][] { - {3,0,9,8}, - {0,1,10,9}, - {1,2,11,10}, - {2,3,8,11}, - {6,5,13,12}, - {5,4,14,13}, - {4,7,15,14}, - {7,6,12,15}, - {1,0,17,16}, - {0,4,18,17}, - {4,5,19,18}, - {5,1,16,19}, - {1,5,21,20}, - {5,6,22,21}, - {6,2,23,22}, - {2,1,20,23}, - {6,7,25,24}, - {7,3,26,25}, - {3,2,27,26}, - {2,6,24,27}, - {3,7,29,28}, - {7,4,30,29}, - {4,0,31,30}, - {0,3,28,31} - }; + + @ParameterizedTest + @ValueSource(longs = { 0, 1000, 134424, -14, -1342424293, 432424229, + Long.MAX_VALUE, Long.MIN_VALUE }) + public void testFacesWithDifferentSeeds(long seed) { + int[][] expected = new int[][] { { 3, 0, 9, 8 }, { 0, 1, 10, 9 }, + { 1, 2, 11, 10 }, { 2, 3, 8, 11 }, { 6, 5, 13, 12 }, { 5, 4, 14, 13 }, + { 4, 7, 15, 14 }, { 7, 6, 12, 15 }, { 1, 0, 17, 16 }, { 0, 4, 18, 17 }, + { 4, 5, 19, 18 }, { 5, 1, 16, 19 }, { 1, 5, 21, 20 }, { 5, 6, 22, 21 }, + { 6, 2, 23, 22 }, { 2, 1, 20, 23 }, { 6, 7, 25, 24 }, { 7, 3, 26, 25 }, + { 3, 2, 27, 26 }, { 2, 6, 24, 27 }, { 3, 7, 29, 28 }, { 7, 4, 30, 29 }, + { 4, 0, 31, 30 }, { 0, 3, 28, 31 } }; Mesh3D mesh = new CubeCreator().create(); modifier.setSeed(seed); modifier.modify(mesh); @@ -301,35 +224,25 @@ public void testFacesWithDifferentSeeds(long seed) { int[] actual = mesh.getFaceAt(i).indices; assertArrayEquals(expected[i], actual); } - } - - @ParameterizedTest - @ValueSource(floats = { - 0.1f, - 0.135f, - 0.13f, - 0.2f, - 0.23555f, - 0.721f, - 0.9654f, - Float.MIN_VALUE, - Float.MAX_VALUE - }) - public void testMinMaxAmountPositiveValuesAndSeed(float amount) { - Mesh3D expected = new PlaneCreator().create(); - ExtrudeModifier extrudeModifier = new ExtrudeModifier(); - extrudeModifier.setRemoveFaces(true); - extrudeModifier.setScale(amount); - extrudeModifier.setAmount(0); - expected.apply(extrudeModifier); - - Mesh3D actual = new PlaneCreator().create(); - modifier.setMinAmount(amount); - modifier.setMaxAmount(amount); - modifier.setSeed(234); - modifier.modify(actual); + } + + @ParameterizedTest + @ValueSource(floats = { 0.1f, 0.135f, 0.13f, 0.2f, 0.23555f, 0.721f, 0.9654f, + Float.MIN_VALUE }) + public void testMinMaxAmountPositiveValuesAndSeed(float amount) { + Mesh3D expected = new PlaneCreator().create(); + ExtrudeModifier extrudeModifier = new ExtrudeModifier(); + extrudeModifier.setRemoveFaces(true); + extrudeModifier.setScale(amount); + extrudeModifier.setAmount(0); + expected.apply(extrudeModifier); + + Mesh3D actual = new PlaneCreator().create(); + modifier = new RandomHolesModifier(amount, amount); + modifier.setSeed(234); + modifier.modify(actual); assertArrayEquals(expected.vertices.toArray(), actual.vertices.toArray()); - } - + } + }