You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/30 10:41:51 UTC
[lucene] 05/06: This removes the last of ant-compatibility hacks -
cross-project dependency on test classes. Replaced with gradle's test
fixture artifact sharing. Cleaned up spatial3d classes a bit too.
This is an automated email from the ASF dual-hosted git repository.
dweiss pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/lucene.git
commit fd685682be46be3814285445b48f26912898a884
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Tue Mar 30 12:35:33 2021 +0200
This removes the last of ant-compatibility hacks - cross-project dependency on test classes. Replaced with gradle's test fixture artifact sharing. Cleaned up spatial3d classes a bit too.
---
build.gradle | 7 +-
gradle/ant-compat/test-classes-cross-deps.gradle | 43 ----------
gradle/publishing/defaults-maven.gradle | 14 ++++
gradle/validation/forbidden-apis.gradle | 41 +++++-----
...erxml.jackson.core.jackson-annotations.solr.txt | 2 -
gradle/validation/forbidden-apis/defaults.solr.txt | 35 --------
gradle/validation/forbidden-apis/java.solr.txt | 20 -----
.../javax.servlet.javax.servlet-api.solr.txt | 43 ----------
.../org.apache.logging.log4j.log4j-api.solr.txt | 3 -
lucene/spatial-extras/build.gradle | 1 +
.../lucene/spatial/spatial4j/TestGeo3dRpt.java | 14 ++--
lucene/spatial3d/build.gradle | 5 +-
.../lucene/spatial3d/TestGeo3DDocValues.java | 2 +-
.../geom/TestCompositeGeoPolygonRelationships.java | 5 +-
.../apache/lucene/spatial3d/geom/TestGeoBBox.java | 9 +-
.../spatial3d/geom/TestGeoConvexPolygon.java | 7 +-
.../lucene/spatial3d/geom/TestGeoExactCircle.java | 11 ++-
.../apache/lucene/spatial3d/geom/TestGeoModel.java | 7 +-
.../apache/lucene/spatial3d/geom/TestPlane.java | 7 +-
.../spatial3d/geom/TestRandomBinaryCodec.java | 6 +-
.../spatial3d/geom/TestRandomGeoPolygon.java | 6 +-
.../geom/TestRandomGeoShapeRelationship.java | 6 +-
.../lucene/spatial3d/geom/TestRandomPlane.java | 5 +-
.../geom/TestSimpleGeoPolygonRelationships.java | 6 +-
.../spatial3d/geom/RandomGeo3dShapeGenerator.java | 95 ++++++++++++----------
25 files changed, 138 insertions(+), 262 deletions(-)
diff --git a/build.gradle b/build.gradle
index 2ae2826..e50b1b7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,7 +20,7 @@ import java.time.format.DateTimeFormatter
plugins {
id "base"
- id "com.palantir.consistent-versions" version "1.14.0"
+ id "com.palantir.consistent-versions" version "1.28.0"
id "org.owasp.dependencycheck" version "5.3.0"
id 'de.thetaphi.forbiddenapis' version '3.1' apply false
id "de.undercouch.download" version "4.1.1" apply false
@@ -167,11 +167,6 @@ apply from: file('gradle/testing/profiling.gradle')
apply from: file('gradle/testing/beasting.gradle')
apply from: file('gradle/help.gradle')
-// Ant-compatibility layer. ALL OF THESE SHOULD BE GONE at some point. They are
-// here so that we can coexist with current ant build but they are indicative
-// of potential problems with the build conventions, dependencies, etc.
-apply from: file('gradle/ant-compat/test-classes-cross-deps.gradle')
-
apply from: file('gradle/documentation/documentation.gradle')
apply from: file('gradle/documentation/changes-to-html.gradle')
apply from: file('gradle/documentation/markdown.gradle')
diff --git a/gradle/ant-compat/test-classes-cross-deps.gradle b/gradle/ant-compat/test-classes-cross-deps.gradle
deleted file mode 100644
index c75202b..0000000
--- a/gradle/ant-compat/test-classes-cross-deps.gradle
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Set up cross-project dependency on test classes. This should be resolved by pulling reused classes into
-// a separate regular module. Exporting test classes is sort of weird.
-configure([project(":lucene:spatial3d"),
- project(":lucene:analysis:common"),
- project(":lucene:backward-codecs"),
- project(":lucene:queryparser")]) {
- plugins.withType(JavaPlugin) {
- configurations {
- testClassesExported
- }
-
- artifacts {
- testClassesExported sourceSets.test.java.outputDir, {
- builtBy testClasses
- }
- }
- }
-}
-
-configure(project(":lucene:spatial-extras")) {
- plugins.withType(JavaPlugin) {
- dependencies {
- testImplementation project(path: ':lucene:spatial3d', configuration: 'testClassesExported')
- }
- }
-}
diff --git a/gradle/publishing/defaults-maven.gradle b/gradle/publishing/defaults-maven.gradle
index 575668b..7f7345c 100644
--- a/gradle/publishing/defaults-maven.gradle
+++ b/gradle/publishing/defaults-maven.gradle
@@ -84,6 +84,20 @@ configure(subprojects.findAll { it.path in rootProject.published }) { prj ->
}
}
+ // Skip any test fixtures in publishing.
+ afterEvaluate {
+ configurations.matching {
+ return it.name in [
+ "testFixturesApiElements",
+ "testFixturesRuntimeElements"
+ ]
+ }.all {
+ project.components.java.withVariantsFromConfiguration(it) {
+ skip()
+ }
+ }
+ }
+
// Do not generate gradle metadata files.
tasks.withType(GenerateModuleMetadata) {
enabled = false
diff --git a/gradle/validation/forbidden-apis.gradle b/gradle/validation/forbidden-apis.gradle
index 3a06e26..832dcde 100644
--- a/gradle/validation/forbidden-apis.gradle
+++ b/gradle/validation/forbidden-apis.gradle
@@ -69,10 +69,12 @@ allprojects { prj ->
suppressAnnotations += [
"**.SuppressForbidden"
]
+
+ doFirst dynamicSignatures.curry(configurations.compileClasspath, "lucene")
}
// Configure defaults for sourceSets.test
- forbiddenApisTest {
+ tasks.matching { it.name in ["forbiddenApisTest", "forbiddenApisTestFixtures"] }.all {
bundledSignatures += [
'jdk-unsafe',
'jdk-deprecated',
@@ -87,6 +89,12 @@ allprojects { prj ->
suppressAnnotations += [
"**.SuppressForbidden"
]
+
+ if (it.name == "forbiddenApisTestFixtures") {
+ doFirst dynamicSignatures.curry(configurations.testFixturesCompileClasspath, "lucene")
+ } else {
+ doFirst dynamicSignatures.curry(configurations.testCompileClasspath, "lucene")
+ }
}
// Configure defaults for sourceSets.tools (if present).
@@ -103,9 +111,21 @@ allprojects { prj ->
]
doFirst dynamicSignatures.curry(configurations.toolsCompileClasspath, "lucene")
+
inputs.dir(file(resources))
}
+ // We rely on resolved configurations to compute the relevant set of rule
+ // files for forbiddenApis. Since we don't want to resolve these configurations until
+ // the task is executed, we can't really use them as task inputs properly. This is a
+ // chicken-and-egg problem.
+ //
+ // This is the simplest workaround possible: just point at all the rule files and indicate
+ // them as inputs. This way if a rule is modified, checks will be reapplied.
+ configure(tasks.matching { it.name.startsWith("forbiddenApis") }) { task ->
+ task.inputs.dir(file(resources))
+ }
+
// Disable sysout signatures for these projects.
if (prj.path in [
":lucene:demo",
@@ -116,24 +136,5 @@ allprojects { prj ->
'jdk-system-out'
]
}
-
- forbiddenApisMain {
- doFirst dynamicSignatures.curry(configurations.compileClasspath, "lucene")
- }
-
- forbiddenApisTest {
- doFirst dynamicSignatures.curry(configurations.testCompileClasspath, "lucene")
- }
-
- // We rely on resolved configurations to compute the relevant set of rule
- // files for forbiddenApis. Since we don't want to resolve these configurations until
- // the task is executed, we can't really use them as task inputs properly. This is a
- // chicken-and-egg problem.
- //
- // This is the simplest workaround possible: just point at all the rule files and indicate
- // them as inputs. This way if a rule is modified, checks will be reapplied.
- configure([forbiddenApisMain, forbiddenApisTest]) { task ->
- task.inputs.dir(file(resources))
- }
})
}
\ No newline at end of file
diff --git a/gradle/validation/forbidden-apis/com.fasterxml.jackson.core.jackson-annotations.solr.txt b/gradle/validation/forbidden-apis/com.fasterxml.jackson.core.jackson-annotations.solr.txt
deleted file mode 100644
index af88dea..0000000
--- a/gradle/validation/forbidden-apis/com.fasterxml.jackson.core.jackson-annotations.solr.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-@defaultMessage Use org.apache.solr.common.annotation.JsonProperty instead
-com.fasterxml.jackson.annotation.JsonProperty
diff --git a/gradle/validation/forbidden-apis/defaults.solr.txt b/gradle/validation/forbidden-apis/defaults.solr.txt
deleted file mode 100644
index 50c69ac..0000000
--- a/gradle/validation/forbidden-apis/defaults.solr.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@defaultMessage Spawns threads without MDC logging context; use ExecutorUtil.newMDCAwareFixedThreadPool instead
-java.util.concurrent.Executors#newFixedThreadPool(int,java.util.concurrent.ThreadFactory)
-
-@defaultMessage Spawns threads without MDC logging context; use ExecutorUtil.newMDCAwareSingleThreadExecutor instead
-java.util.concurrent.Executors#newSingleThreadExecutor(java.util.concurrent.ThreadFactory)
-
-@defaultMessage Spawns threads without MDC logging context; use ExecutorUtil.newMDCAwareCachedThreadPool instead
-java.util.concurrent.Executors#newCachedThreadPool(java.util.concurrent.ThreadFactory)
-
-@defaultMessage Use ExecutorUtil.MDCAwareThreadPoolExecutor instead of ThreadPoolExecutor
-java.util.concurrent.ThreadPoolExecutor#<init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory,java.util.concurrent.RejectedExecutionHandler)
-java.util.concurrent.ThreadPoolExecutor#<init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue)
-java.util.concurrent.ThreadPoolExecutor#<init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)
-java.util.concurrent.ThreadPoolExecutor#<init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.RejectedExecutionHandler)
-
-@defaultMessage Use RTimer/TimeOut/System.nanoTime for time comparisons, and `new Date()` output/debugging/stats of timestamps. If for some miscellaneous reason, you absolutely need to use this, use a SuppressForbidden.
-java.lang.System#currentTimeMillis()
-
-@defaultMessage Use slf4j classes instead
-java.util.logging.**
diff --git a/gradle/validation/forbidden-apis/java.solr.txt b/gradle/validation/forbidden-apis/java.solr.txt
deleted file mode 100644
index 2ea1125..0000000
--- a/gradle/validation/forbidden-apis/java.solr.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@defaultMessage Creates threads without a thread name
-java.lang.Thread#<init>()
-java.lang.Thread#<init>(java.lang.Runnable)
-java.lang.Thread#<init>(java.lang.ThreadGroup,java.lang.Runnable)
-
diff --git a/gradle/validation/forbidden-apis/javax.servlet.javax.servlet-api.solr.txt b/gradle/validation/forbidden-apis/javax.servlet.javax.servlet-api.solr.txt
deleted file mode 100644
index dc82e8f..0000000
--- a/gradle/validation/forbidden-apis/javax.servlet.javax.servlet-api.solr.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@defaultMessage Servlet API method is parsing request parameters without using the correct encoding if no extra configuration is given in the servlet container
-
-javax.servlet.ServletRequest#getParameter(java.lang.String)
-javax.servlet.ServletRequest#getParameterMap()
-javax.servlet.ServletRequest#getParameterNames()
-javax.servlet.ServletRequest#getParameterValues(java.lang.String)
-
-javax.servlet.http.HttpServletRequest#getSession() @ Servlet API getter has side effect of creating sessions
-
-@defaultMessage Servlet API method is broken and slow in some environments (e.g., Jetty's UTF-8 readers)
-
-javax.servlet.ServletRequest#getReader()
-javax.servlet.ServletResponse#getWriter()
-javax.servlet.ServletInputStream#readLine(byte[],int,int)
-javax.servlet.ServletOutputStream#print(boolean)
-javax.servlet.ServletOutputStream#print(char)
-javax.servlet.ServletOutputStream#print(double)
-javax.servlet.ServletOutputStream#print(float)
-javax.servlet.ServletOutputStream#print(int)
-javax.servlet.ServletOutputStream#print(long)
-javax.servlet.ServletOutputStream#print(java.lang.String)
-javax.servlet.ServletOutputStream#println(boolean)
-javax.servlet.ServletOutputStream#println(char)
-javax.servlet.ServletOutputStream#println(double)
-javax.servlet.ServletOutputStream#println(float)
-javax.servlet.ServletOutputStream#println(int)
-javax.servlet.ServletOutputStream#println(long)
-javax.servlet.ServletOutputStream#println(java.lang.String)
diff --git a/gradle/validation/forbidden-apis/org.apache.logging.log4j.log4j-api.solr.txt b/gradle/validation/forbidden-apis/org.apache.logging.log4j.log4j-api.solr.txt
deleted file mode 100644
index 7816b65..0000000
--- a/gradle/validation/forbidden-apis/org.apache.logging.log4j.log4j-api.solr.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-@defaultMessage Use slf4j classes instead
-org.apache.log4j.**
-org.apache.logging.log4j.**
diff --git a/lucene/spatial-extras/build.gradle b/lucene/spatial-extras/build.gradle
index 83889d3..252056b 100644
--- a/lucene/spatial-extras/build.gradle
+++ b/lucene/spatial-extras/build.gradle
@@ -27,6 +27,7 @@ dependencies {
api 'io.sgr:s2-geometry-library-java'
testImplementation project(':lucene:test-framework')
+ testImplementation testFixtures(project(':lucene:spatial3d'))
testImplementation 'org.locationtech.jts:jts-core'
testImplementation 'org.locationtech.spatial4j:spatial4j::tests'
diff --git a/lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dRpt.java b/lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dRpt.java
index 20ed217..425142e 100644
--- a/lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dRpt.java
+++ b/lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dRpt.java
@@ -16,6 +16,7 @@
*/
package org.apache.lucene.spatial.spatial4j;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
import static org.locationtech.spatial4j.distance.DistanceUtils.DEGREES_TO_RADIANS;
import java.io.IOException;
@@ -39,7 +40,6 @@ import org.apache.lucene.spatial3d.geom.GeoPoint;
import org.apache.lucene.spatial3d.geom.GeoPointShape;
import org.apache.lucene.spatial3d.geom.GeoPolygonFactory;
import org.apache.lucene.spatial3d.geom.PlanetModel;
-import org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator;
import org.junit.Test;
import org.locationtech.spatial4j.shape.Rectangle;
import org.locationtech.spatial4j.shape.Shape;
@@ -47,7 +47,6 @@ import org.locationtech.spatial4j.shape.Shape;
public class TestGeo3dRpt extends RandomSpatialOpStrategyTestCase {
private PlanetModel planetModel;
- private RandomGeo3dShapeGenerator shapeGenerator;
private SpatialPrefixTree grid;
private RecursivePrefixTreeStrategy rptStrategy;
@@ -73,8 +72,7 @@ public class TestGeo3dRpt extends RandomSpatialOpStrategyTestCase {
}
private void setupStrategy() {
- shapeGenerator = new RandomGeo3dShapeGenerator();
- planetModel = shapeGenerator.randomPlanetModel();
+ planetModel = randomPlanetModel();
Geo3dSpatialContextFactory factory = new Geo3dSpatialContextFactory();
factory.planetModel = planetModel;
ctx = factory.newSpatialContext();
@@ -135,8 +133,8 @@ public class TestGeo3dRpt extends RandomSpatialOpStrategyTestCase {
@Override
protected Shape randomIndexedShape() {
- int type = shapeGenerator.randomShapeType();
- GeoAreaShape areaShape = shapeGenerator.randomGeoAreaShape(type, planetModel);
+ int type = randomShapeType();
+ GeoAreaShape areaShape = randomGeoAreaShape(type, planetModel);
if (areaShape instanceof GeoPointShape) {
return new Geo3dPointShape((GeoPointShape) areaShape, ctx);
}
@@ -145,8 +143,8 @@ public class TestGeo3dRpt extends RandomSpatialOpStrategyTestCase {
@Override
protected Shape randomQueryShape() {
- int type = shapeGenerator.randomShapeType();
- GeoAreaShape areaShape = shapeGenerator.randomGeoAreaShape(type, planetModel);
+ int type = randomShapeType();
+ GeoAreaShape areaShape = randomGeoAreaShape(type, planetModel);
return new Geo3dShape<>(areaShape, ctx);
}
diff --git a/lucene/spatial3d/build.gradle b/lucene/spatial3d/build.gradle
index 415981b..db2064c 100644
--- a/lucene/spatial3d/build.gradle
+++ b/lucene/spatial3d/build.gradle
@@ -16,10 +16,13 @@
*/
apply plugin: 'java-library'
+apply plugin: 'java-test-fixtures'
description = '3D spatial planar geometry APIs'
dependencies {
api project(':lucene:core')
+
+ testFixturesApi project(':lucene:test-framework')
testImplementation project(':lucene:test-framework')
-}
\ No newline at end of file
+}
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/TestGeo3DDocValues.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/TestGeo3DDocValues.java
index 185fd9e..9a56c3e 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/TestGeo3DDocValues.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/TestGeo3DDocValues.java
@@ -24,7 +24,7 @@ import org.apache.lucene.util.TestUtil;
public class TestGeo3DDocValues extends LuceneTestCase {
- public void testBasic() throws Exception {
+ public void testBasic() {
checkPointEncoding(0.0, 0.0);
checkPointEncoding(45.0, 72.0);
checkPointEncoding(-45.0, -100.0);
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestCompositeGeoPolygonRelationships.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestCompositeGeoPolygonRelationships.java
index 37d71de..ca0b3b9 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestCompositeGeoPolygonRelationships.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestCompositeGeoPolygonRelationships.java
@@ -17,18 +17,17 @@
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/**
* Check relationship between polygon and GeoShapes of composite polygons. Normally we construct the
* composite polygon (when possible) and the complex one.
*/
-public class TestCompositeGeoPolygonRelationships {
+public class TestCompositeGeoPolygonRelationships extends LuceneTestCase {
@Test
public void testGeoCompositePolygon1() {
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoBBox.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoBBox.java
index 5cb74fc..f32bbc3 100755
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoBBox.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoBBox.java
@@ -16,15 +16,12 @@
*/
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
import java.util.ArrayList;
import java.util.List;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
-public class TestGeoBBox {
+public class TestGeoBBox extends LuceneTestCase {
protected static final double DEGREES_TO_RADIANS = Math.PI / 180.0;
@@ -32,7 +29,7 @@ public class TestGeoBBox {
public void testBBoxDegenerate() {
GeoBBox box;
int relationship;
- List<GeoPoint> points = new ArrayList<GeoPoint>();
+ List<GeoPoint> points = new ArrayList<>();
points.add(
new GeoPoint(PlanetModel.SPHERE, -49 * DEGREES_TO_RADIANS, -176 * DEGREES_TO_RADIANS));
points.add(
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoConvexPolygon.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoConvexPolygon.java
index 831cffa..9f8a0e4 100755
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoConvexPolygon.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoConvexPolygon.java
@@ -16,13 +16,10 @@
*/
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
-public class TestGeoConvexPolygon {
+public class TestGeoConvexPolygon extends LuceneTestCase {
@Test
public void testPolygonPointWithin() {
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoExactCircle.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoExactCircle.java
index 1ab6261..23b0c1b 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoExactCircle.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoExactCircle.java
@@ -17,11 +17,14 @@
package org.apache.lucene.spatial3d.geom;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
+
import com.carrotsearch.randomizedtesting.annotations.Repeat;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Tests for GeoExactCircle. */
-public class TestGeoExactCircle extends RandomGeo3dShapeGenerator {
+public class TestGeoExactCircle extends LuceneTestCase {
@Test
public void testExactCircle() {
@@ -78,8 +81,7 @@ public class TestGeoExactCircle extends RandomGeo3dShapeGenerator {
@Repeat(iterations = 100)
public void RandomPointBearingWGS84Test() {
PlanetModel planetModel = PlanetModel.WGS84;
- RandomGeo3dShapeGenerator generator = new RandomGeo3dShapeGenerator();
- GeoPoint center = generator.randomGeoPoint(planetModel);
+ GeoPoint center = randomGeoPoint(planetModel);
double radius = random().nextDouble() * Math.PI;
checkBearingPoint(planetModel, center, radius, 0);
checkBearingPoint(planetModel, center, radius, 0.5 * Math.PI);
@@ -197,7 +199,8 @@ public class TestGeoExactCircle extends RandomGeo3dShapeGenerator {
@Repeat(iterations = 100)
public void testRandomLUCENE8054() {
PlanetModel planetModel = randomPlanetModel();
- GeoCircle circle1 = (GeoCircle) randomGeoAreaShape(EXACT_CIRCLE, planetModel);
+ GeoCircle circle1 =
+ (GeoCircle) randomGeoAreaShape(RandomGeo3dShapeGenerator.EXACT_CIRCLE, planetModel);
// new radius, a bit smaller than the generated one!
double radius = circle1.getRadius() * (1 - 0.01 * random().nextDouble());
// circle with same center and new radius
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoModel.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoModel.java
index 72a04ac..b32dec5 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoModel.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoModel.java
@@ -16,14 +16,11 @@
*/
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Test basic plane functionality. */
-public class TestGeoModel {
+public class TestGeoModel extends LuceneTestCase {
protected static final PlanetModel scaledModel = new PlanetModel(1.2, 1.5);
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestPlane.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestPlane.java
index 93d5184..da690cb 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestPlane.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestPlane.java
@@ -16,14 +16,11 @@
*/
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Test basic plane functionality. */
-public class TestPlane {
+public class TestPlane extends LuceneTestCase {
@Test
public void testIdenticalPlanes() {
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomBinaryCodec.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomBinaryCodec.java
index 0bb14c5..4cde05f 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomBinaryCodec.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomBinaryCodec.java
@@ -17,15 +17,17 @@
package org.apache.lucene.spatial3d.geom;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
+
import com.carrotsearch.randomizedtesting.annotations.Repeat;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Test to check Serialization */
-public class TestRandomBinaryCodec extends RandomGeo3dShapeGenerator {
-
+public class TestRandomBinaryCodec extends LuceneTestCase {
@Test
@Repeat(iterations = 10)
public void testRandomPointCodec() throws IOException {
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoPolygon.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoPolygon.java
index ac5fd70..e262561 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoPolygon.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoPolygon.java
@@ -16,15 +16,17 @@
*/
package org.apache.lucene.spatial3d.geom;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
+
import com.carrotsearch.randomizedtesting.generators.BiasedNumbers;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Random test for polygons. */
-public class TestRandomGeoPolygon extends RandomGeo3dShapeGenerator {
-
+public class TestRandomGeoPolygon extends LuceneTestCase {
@Test
public void testRandomLUCENE8157() {
final PlanetModel planetModel = randomPlanetModel();
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoShapeRelationship.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoShapeRelationship.java
index 2698a87..ccc8078 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoShapeRelationship.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoShapeRelationship.java
@@ -17,11 +17,13 @@
package org.apache.lucene.spatial3d.geom;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
+
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Random test to check relationship between GeoAreaShapes and GeoShapes. */
-public class TestRandomGeoShapeRelationship extends RandomGeo3dShapeGenerator {
-
+public class TestRandomGeoShapeRelationship extends LuceneTestCase {
/**
* Test for WITHIN points. We build a WITHIN shape with respect the geoAreaShape and create a
* point WITHIN the shape. The resulting shape should be WITHIN the original shape.
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomPlane.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomPlane.java
index 87ff11e..c4cb115 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomPlane.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomPlane.java
@@ -17,13 +17,16 @@
package org.apache.lucene.spatial3d.geom;
+import static org.apache.lucene.spatial3d.geom.RandomGeo3dShapeGenerator.*;
+
import com.carrotsearch.randomizedtesting.annotations.Repeat;
import java.util.ArrayList;
import java.util.List;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/** Random test for planes. */
-public class TestRandomPlane extends RandomGeo3dShapeGenerator {
+public class TestRandomPlane extends LuceneTestCase {
@Test
@Repeat(iterations = 10)
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestSimpleGeoPolygonRelationships.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestSimpleGeoPolygonRelationships.java
index ad2c0ac..095925c 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestSimpleGeoPolygonRelationships.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestSimpleGeoPolygonRelationships.java
@@ -17,19 +17,17 @@
package org.apache.lucene.spatial3d.geom;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
/**
* Check relationship between polygon and GeoShapes of basic polygons. Normally we construct the
* convex, concave counterpart and the convex polygon as a complex polygon.
*/
-public class TestSimpleGeoPolygonRelationships {
+public class TestSimpleGeoPolygonRelationships extends LuceneTestCase {
/** Test with two shapes with no crossing edges and no points in common in convex case. */
@Test
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java b/lucene/spatial3d/src/testFixtures/java/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java
similarity index 91%
rename from lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java
rename to lucene/spatial3d/src/testFixtures/java/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java
index ca89e1b..61f83a6 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java
+++ b/lucene/spatial3d/src/testFixtures/java/org/apache/lucene/spatial3d/geom/RandomGeo3dShapeGenerator.java
@@ -17,14 +17,14 @@
package org.apache.lucene.spatial3d.geom;
-import static com.carrotsearch.randomizedtesting.RandomizedTest.randomDouble;
-
+import com.carrotsearch.randomizedtesting.RandomizedContext;
+import com.carrotsearch.randomizedtesting.RandomizedTest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.lucene.util.LuceneTestCase;
+import java.util.Random;
/**
* Class for generating random Geo3dShapes. They can be generated under given constraints which are
@@ -34,7 +34,7 @@ import org.apache.lucene.util.LuceneTestCase;
* otherwise they are convex. Internally they can be created using GeoConvexPolygons and
* GeoConcavePolygons.
*/
-public class RandomGeo3dShapeGenerator extends LuceneTestCase {
+public final class RandomGeo3dShapeGenerator {
/* Max num of iterations to find right shape under given constrains */
private static final int MAX_SHAPE_ITERATIONS = 20;
@@ -59,13 +59,21 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
protected static final int CONVEX_SIMPLE_POLYGON = 500;
protected static final int CONCAVE_SIMPLE_POLYGON = 501;
+ /** Static methods only. */
+ private RandomGeo3dShapeGenerator() {}
+
+ /** @return Returns a private-use random forked from the current {@link RandomizedContext}. */
+ private static Random random() {
+ return new Random(RandomizedContext.current().getRandom().nextLong());
+ }
+
/**
* Method that returns a random generated Planet model from the supported Planet models. currently
* SPHERE and WGS84
*
* @return a random generated Planet model
*/
- public PlanetModel randomPlanetModel() {
+ public static PlanetModel randomPlanetModel() {
final int shapeType = random().nextInt(2);
switch (shapeType) {
case 0:
@@ -86,7 +94,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return a random generated shape code
*/
- public int randomShapeType() {
+ public static int randomShapeType() {
return random().nextInt(12);
}
@@ -98,7 +106,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return a random generated polygon code
*/
- public int randomGeoAreaShapeType() {
+ public static int randomGeoAreaShapeType() {
return random().nextInt(12);
}
@@ -107,7 +115,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return a random generated convex shape code
*/
- public int randomConvexShapeType() {
+ public static int randomConvexShapeType() {
int shapeType = randomShapeType();
while (isConcave(shapeType)) {
shapeType = randomShapeType();
@@ -120,7 +128,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return a random generated concave shape code
*/
- public int randomConcaveShapeType() {
+ public static int randomConcaveShapeType() {
int shapeType = randomShapeType();
while (!isConcave(shapeType)) {
shapeType = randomShapeType();
@@ -133,7 +141,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return true if the shape represented by the code is concave
*/
- public boolean isConcave(int shapeType) {
+ public static boolean isConcave(int shapeType) {
return (shapeType == CONCAVE_POLYGON);
}
@@ -142,7 +150,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return an empty Constraints object
*/
- public Constraints getEmptyConstraint() {
+ public static Constraints getEmptyConstraint() {
return new Constraints();
}
@@ -152,7 +160,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param planetModel The planet model.
* @return The random generated GeoPoint.
*/
- public GeoPoint randomGeoPoint(PlanetModel planetModel) {
+ public static GeoPoint randomGeoPoint(PlanetModel planetModel) {
GeoPoint point = null;
while (point == null) {
point = randomGeoPoint(planetModel, getEmptyConstraint());
@@ -168,14 +176,14 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPoint.
*/
- public GeoPoint randomGeoPoint(PlanetModel planetModel, Constraints constraints) {
+ public static GeoPoint randomGeoPoint(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_POINT_ITERATIONS) {
- double lat = randomDouble() * Math.PI / 2;
+ double lat = RandomizedTest.randomDouble() * Math.PI / 2;
if (random().nextBoolean()) {
lat = (-1) * lat;
}
- double lon = randomDouble() * Math.PI;
+ double lon = RandomizedTest.randomDouble() * Math.PI;
if (random().nextBoolean()) {
lon = (-1) * lon;
}
@@ -195,7 +203,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param planetModel The planet model.
* @return The random generated GeoAreaShape.
*/
- public GeoAreaShape randomGeoAreaShape(int shapeType, PlanetModel planetModel) {
+ public static GeoAreaShape randomGeoAreaShape(int shapeType, PlanetModel planetModel) {
GeoAreaShape geoAreaShape = null;
while (geoAreaShape == null) {
geoAreaShape = randomGeoAreaShape(shapeType, planetModel, new Constraints());
@@ -212,7 +220,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoAreaShape.
*/
- public GeoAreaShape randomGeoAreaShape(
+ public static GeoAreaShape randomGeoAreaShape(
int shapeType, PlanetModel planetModel, Constraints constraints) {
return (GeoAreaShape) randomGeoShape(shapeType, planetModel, constraints);
}
@@ -224,7 +232,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param planetModel The planet model.
* @return The random generated GeoShape.
*/
- public GeoShape randomGeoShape(int shapeType, PlanetModel planetModel) {
+ public static GeoShape randomGeoShape(int shapeType, PlanetModel planetModel) {
GeoShape geoShape = null;
while (geoShape == null) {
geoShape = randomGeoShape(shapeType, planetModel, new Constraints());
@@ -241,7 +249,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoShape.
*/
- public GeoShape randomGeoShape(int shapeType, PlanetModel planetModel, Constraints constraints) {
+ public static GeoShape randomGeoShape(
+ int shapeType, PlanetModel planetModel, Constraints constraints) {
switch (shapeType) {
case CONVEX_POLYGON:
{
@@ -312,7 +321,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPointShape.
*/
- private GeoPointShape point(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPointShape point(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -344,7 +353,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoCircle.
*/
- private GeoCircle circle(PlanetModel planetModel, Constraints constraints) {
+ private static GeoCircle circle(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -377,7 +386,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoCircle.
*/
- private GeoCircle exactCircle(PlanetModel planetModel, Constraints constraints) {
+ private static GeoCircle exactCircle(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -411,7 +420,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoBBox.
*/
- private GeoBBox rectangle(PlanetModel planetModel, Constraints constraints) {
+ private static GeoBBox rectangle(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
@@ -451,7 +460,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated degenerated GeoPath.
*/
- private GeoPath line(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPath line(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -483,7 +492,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPath.
*/
- private GeoPath path(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPath path(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -516,7 +525,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoCompositeMembershipShape.
*/
- private GeoCompositeAreaShape collection(PlanetModel planetModel, Constraints constraints) {
+ private static GeoCompositeAreaShape collection(
+ PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -544,7 +554,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon convexPolygon(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon convexPolygon(PlanetModel planetModel, Constraints constraints) {
int vertexCount = random().nextInt(4) + 3;
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
@@ -575,7 +585,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon convexPolygonWithHoles(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon convexPolygonWithHoles(
+ PlanetModel planetModel, Constraints constraints) {
int vertexCount = random().nextInt(4) + 3;
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
@@ -633,7 +644,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param pointConstraints The given constraints that a point must comply.
* @return The random generated GeoPolygon.
*/
- private List<GeoPolygon> concavePolygonHoles(
+ private static List<GeoPolygon> concavePolygonHoles(
PlanetModel planetModel,
GeoPolygon polygon,
Constraints holeConstraints,
@@ -681,7 +692,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon concavePolygon(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon concavePolygon(PlanetModel planetModel, Constraints constraints) {
int vertexCount = random().nextInt(4) + 3;
int iterations = 0;
@@ -715,7 +726,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon concavePolygonWithHoles(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon concavePolygonWithHoles(
+ PlanetModel planetModel, Constraints constraints) {
int vertexCount = random().nextInt(4) + 3;
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
@@ -770,7 +782,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon complexPolygon(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon complexPolygon(PlanetModel planetModel, Constraints constraints) {
int polygonsCount = random().nextInt(2) + 1;
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
@@ -807,7 +819,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon simpleConvexPolygon(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon simpleConvexPolygon(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -838,7 +850,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated GeoPolygon.
*/
- private GeoPolygon concaveSimplePolygon(PlanetModel planetModel, Constraints constraints) {
+ private static GeoPolygon concaveSimplePolygon(PlanetModel planetModel, Constraints constraints) {
int iterations = 0;
while (iterations < MAX_SHAPE_ITERATIONS) {
iterations++;
@@ -870,7 +882,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param constraints The given constraints.
* @return The random generated List of GeoPoints.
*/
- private List<GeoPoint> points(int count, PlanetModel planetModel, Constraints constraints) {
+ private static List<GeoPoint> points(
+ int count, PlanetModel planetModel, Constraints constraints) {
List<GeoPoint> geoPoints = new ArrayList<>(count);
for (int i = 0; i < count; i++) {
GeoPoint point = randomGeoPoint(planetModel, constraints);
@@ -889,7 +902,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param shape The polygon to check.
* @return True if the polygon contains antipodal points.
*/
- private boolean isConcave(PlanetModel planetModel, GeoPolygon shape) {
+ private static boolean isConcave(PlanetModel planetModel, GeoPolygon shape) {
return (shape.isWithin(planetModel.NORTH_POLE) && shape.isWithin(planetModel.SOUTH_POLE))
|| (shape.isWithin(planetModel.MAX_X_POLE) && shape.isWithin(planetModel.MIN_X_POLE))
|| (shape.isWithin(planetModel.MAX_Y_POLE) && shape.isWithin(planetModel.MIN_Y_POLE));
@@ -903,7 +916,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param shape The polygon to check.
* @return True if the polygon dies not contains antipodal points.
*/
- private boolean isConvex(PlanetModel planetModel, GeoPolygon shape) {
+ private static boolean isConvex(PlanetModel planetModel, GeoPolygon shape) {
return !isConcave(planetModel, shape);
}
@@ -912,8 +925,8 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
*
* @return the cutoff angle.
*/
- private double randomCutoffAngle() {
- return randomDouble() * Math.PI;
+ private static double randomCutoffAngle() {
+ return RandomizedTest.randomDouble() * Math.PI;
}
/**
@@ -922,7 +935,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* @param points The points to order.
* @return The list of ordered points anti-clockwise.
*/
- protected List<GeoPoint> orderPoints(List<GeoPoint> points) {
+ protected static List<GeoPoint> orderPoints(List<GeoPoint> points) {
double x = 0;
double y = 0;
double z = 0;
@@ -964,7 +977,7 @@ public class RandomGeo3dShapeGenerator extends LuceneTestCase {
* Class that holds the constraints that are given to build shapes. It consists in a list of
* GeoAreaShapes and relationships the new shape needs to satisfy.
*/
- class Constraints extends HashMap<GeoAreaShape, Integer> {
+ static class Constraints extends HashMap<GeoAreaShape, Integer> {
/**
* Check if the shape is valid under the constraints.