[Rename] modules/rank-eval (#214)

Refactor rank-eval module as part of the Elasticsearch to OpenSearch renaming effort.

Signed-off-by: Rabi Panda <adnapibar@gmail.com>
This commit is contained in:
Rabi Panda 2021-03-08 13:33:25 -08:00 committed by Nick Knize
parent abeb41b486
commit 4d7727ba07
43 changed files with 92 additions and 92 deletions

View File

@ -73,7 +73,7 @@ import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.VersionType;
import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.rankeval.RankEvalRequest;
import org.opensearch.index.rankeval.RankEvalRequest;
import org.elasticsearch.index.reindex.AbstractBulkByScrollRequest;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.ReindexRequest;

View File

@ -73,8 +73,8 @@ import org.elasticsearch.common.xcontent.DeprecationHandler;
import org.elasticsearch.common.xcontent.NamedXContentRegistry;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.rankeval.RankEvalRequest;
import org.elasticsearch.index.rankeval.RankEvalResponse;
import org.opensearch.index.rankeval.RankEvalRequest;
import org.opensearch.index.rankeval.RankEvalResponse;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.ReindexRequest;
@ -1687,7 +1687,7 @@ public class RestHighLevelClient implements Closeable {
/**
* Converts a {@link ResponseException} obtained from the low level REST client into an {@link OpenSearchException}.
* If a response body was returned, tries to parse it as an error returned from Elasticsearch.
* If a response body was returned, tries to parse it as an error returned from OpenSearch.
* If no response body was returned or anything goes wrong while parsing the error, returns a new {@link OpenSearchStatusException}
* that wraps the original {@link ResponseException}. The potential exception obtained while parsing is added to the returned
* exception as a suppressed exception. This method is guaranteed to not throw any exception eventually thrown while parsing.

View File

@ -22,19 +22,19 @@ package org.elasticsearch.client;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.support.IndicesOptions;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.rankeval.DiscountedCumulativeGain;
import org.elasticsearch.index.rankeval.EvalQueryQuality;
import org.elasticsearch.index.rankeval.EvaluationMetric;
import org.elasticsearch.index.rankeval.ExpectedReciprocalRank;
import org.elasticsearch.index.rankeval.MeanReciprocalRank;
import org.elasticsearch.index.rankeval.PrecisionAtK;
import org.elasticsearch.index.rankeval.RecallAtK;
import org.elasticsearch.index.rankeval.RankEvalRequest;
import org.elasticsearch.index.rankeval.RankEvalResponse;
import org.elasticsearch.index.rankeval.RankEvalSpec;
import org.elasticsearch.index.rankeval.RatedDocument;
import org.elasticsearch.index.rankeval.RatedRequest;
import org.elasticsearch.index.rankeval.RatedSearchHit;
import org.opensearch.index.rankeval.DiscountedCumulativeGain;
import org.opensearch.index.rankeval.EvalQueryQuality;
import org.opensearch.index.rankeval.EvaluationMetric;
import org.opensearch.index.rankeval.ExpectedReciprocalRank;
import org.opensearch.index.rankeval.MeanReciprocalRank;
import org.opensearch.index.rankeval.PrecisionAtK;
import org.opensearch.index.rankeval.RecallAtK;
import org.opensearch.index.rankeval.RankEvalRequest;
import org.opensearch.index.rankeval.RankEvalResponse;
import org.opensearch.index.rankeval.RankEvalSpec;
import org.opensearch.index.rankeval.RatedDocument;
import org.opensearch.index.rankeval.RatedRequest;
import org.opensearch.index.rankeval.RatedSearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.junit.Before;
@ -47,7 +47,7 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.elasticsearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
import static org.opensearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
public class RankEvalIT extends ESRestHighLevelClientTestCase {

View File

@ -77,11 +77,11 @@ import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.rankeval.PrecisionAtK;
import org.elasticsearch.index.rankeval.RankEvalRequest;
import org.elasticsearch.index.rankeval.RankEvalSpec;
import org.elasticsearch.index.rankeval.RatedRequest;
import org.elasticsearch.index.rankeval.RestRankEvalAction;
import org.opensearch.index.rankeval.PrecisionAtK;
import org.opensearch.index.rankeval.RankEvalRequest;
import org.opensearch.index.rankeval.RankEvalSpec;
import org.opensearch.index.rankeval.RatedRequest;
import org.opensearch.index.rankeval.RestRankEvalAction;
import org.elasticsearch.index.reindex.AbstractBulkByScrollRequest;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.ReindexRequest;

View File

@ -56,13 +56,13 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.cbor.CborXContent;
import org.elasticsearch.common.xcontent.smile.SmileXContent;
import org.elasticsearch.index.rankeval.DiscountedCumulativeGain;
import org.elasticsearch.index.rankeval.EvaluationMetric;
import org.elasticsearch.index.rankeval.ExpectedReciprocalRank;
import org.elasticsearch.index.rankeval.MeanReciprocalRank;
import org.elasticsearch.index.rankeval.MetricDetail;
import org.elasticsearch.index.rankeval.PrecisionAtK;
import org.elasticsearch.index.rankeval.RecallAtK;
import org.opensearch.index.rankeval.DiscountedCumulativeGain;
import org.opensearch.index.rankeval.EvaluationMetric;
import org.opensearch.index.rankeval.ExpectedReciprocalRank;
import org.opensearch.index.rankeval.MeanReciprocalRank;
import org.opensearch.index.rankeval.MetricDetail;
import org.opensearch.index.rankeval.PrecisionAtK;
import org.opensearch.index.rankeval.RecallAtK;
import org.elasticsearch.join.aggregations.ChildrenAggregationBuilder;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.search.SearchHits;

View File

@ -63,16 +63,16 @@ import org.elasticsearch.index.get.GetResult;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.rankeval.EvalQueryQuality;
import org.elasticsearch.index.rankeval.EvaluationMetric;
import org.elasticsearch.index.rankeval.MetricDetail;
import org.elasticsearch.index.rankeval.PrecisionAtK;
import org.elasticsearch.index.rankeval.RankEvalRequest;
import org.elasticsearch.index.rankeval.RankEvalResponse;
import org.elasticsearch.index.rankeval.RankEvalSpec;
import org.elasticsearch.index.rankeval.RatedDocument;
import org.elasticsearch.index.rankeval.RatedRequest;
import org.elasticsearch.index.rankeval.RatedSearchHit;
import org.opensearch.index.rankeval.EvalQueryQuality;
import org.opensearch.index.rankeval.EvaluationMetric;
import org.opensearch.index.rankeval.MetricDetail;
import org.opensearch.index.rankeval.PrecisionAtK;
import org.opensearch.index.rankeval.RankEvalRequest;
import org.opensearch.index.rankeval.RankEvalResponse;
import org.opensearch.index.rankeval.RankEvalSpec;
import org.opensearch.index.rankeval.RatedDocument;
import org.opensearch.index.rankeval.RatedRequest;
import org.opensearch.index.rankeval.RatedSearchHit;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.script.ScriptType;
import org.opensearch.script.mustache.MultiSearchTemplateRequest;

View File

@ -16,12 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'opensearch.yaml-rest-test'
apply plugin: 'opensearch.internal-cluster-test'
esplugin {
description 'The Rank Eval module adds APIs to evaluate ranking quality.'
classname 'org.elasticsearch.index.rankeval.RankEvalPlugin'
classname 'org.opensearch.index.rankeval.RankEvalPlugin'
hasClientJar = true
}

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.OpenSearchException;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions;
@ -27,7 +27,7 @@ import org.elasticsearch.index.IndexNotFoundException;
import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.rankeval.PrecisionAtK.Detail;
import org.opensearch.index.rankeval.PrecisionAtK.Detail;
import org.elasticsearch.indices.IndexClosedException;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.search.builder.SearchSourceBuilder;
@ -41,7 +41,7 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import static org.elasticsearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
import static org.opensearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
import static org.hamcrest.Matchers.instanceOf;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
@ -38,7 +38,7 @@ import java.util.stream.Collectors;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
import static org.elasticsearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
import static org.opensearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
/**
* Metric implementing Discounted Cumulative Gain.

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
@ -28,7 +28,7 @@ import org.elasticsearch.common.xcontent.ToXContentFragment;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentParserUtils;
import org.elasticsearch.index.rankeval.RatedDocument.DocumentKey;
import org.opensearch.index.rankeval.RatedDocument.DocumentKey;
import java.io.IOException;
import java.util.ArrayList;

View File

@ -17,11 +17,11 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.io.stream.NamedWriteable;
import org.elasticsearch.common.xcontent.ToXContentObject;
import org.elasticsearch.index.rankeval.RatedDocument.DocumentKey;
import org.opensearch.index.rankeval.RatedDocument.DocumentKey;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.ParseField;
@ -36,7 +36,7 @@ import java.util.OptionalInt;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
import static org.elasticsearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
import static org.opensearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
/**
* Implementation of the Expected Reciprocal Rank metric described in:<p>

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
@ -34,7 +34,7 @@ import java.util.OptionalInt;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
import static org.elasticsearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
import static org.opensearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
/**
* Metric implementing Mean Reciprocal Rank (https://en.wikipedia.org/wiki/Mean_reciprocal_rank).<br>

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.io.stream.NamedWriteable;
import org.elasticsearch.common.xcontent.ToXContentObject;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
@ -36,7 +36,7 @@ import javax.naming.directory.SearchResult;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
import static org.elasticsearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
import static org.opensearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
/**
* Metric implementing Precision@K

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.ActionType;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.xcontent.NamedXContentRegistry;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.ActionRequest;
import org.elasticsearch.action.ActionResponse;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.Version;
import org.elasticsearch.action.ActionRequest;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.ActionType;
import org.elasticsearch.action.ActionRequestBuilder;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.OpenSearchException;
import org.elasticsearch.action.ActionResponse;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.ParsingException;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.Strings;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.ParseField;
@ -29,7 +29,7 @@ import org.elasticsearch.common.xcontent.ConstructingObjectParser;
import org.elasticsearch.common.xcontent.ToXContentObject;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.rankeval.RatedDocument.DocumentKey;
import org.opensearch.index.rankeval.RatedDocument.DocumentKey;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import java.io.IOException;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
@ -36,7 +36,7 @@ import javax.naming.directory.SearchResult;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
import static org.elasticsearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
import static org.opensearch.index.rankeval.EvaluationMetric.joinHitsWithRatings;
/**
* Metric implementing Recall@K

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.action.support.IndicesOptions;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.search.MultiSearchRequest;
@ -51,7 +51,7 @@ import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import static org.elasticsearch.common.xcontent.XContentHelper.createParser;
import static org.elasticsearch.index.rankeval.RatedRequest.validateEvaluatedQuery;
import static org.opensearch.index.rankeval.RatedRequest.validateEvaluatedQuery;
/**
* Instances of this class execute a collection of search intents (read: user

View File

@ -1 +1 @@
org.elasticsearch.index.rankeval.RankEvalNamedXContentProvider
org.opensearch.index.rankeval.RankEvalNamedXContentProvider

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.Strings;
@ -42,7 +42,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.elasticsearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
import static org.opensearch.index.rankeval.EvaluationMetric.filterUnratedDocuments;
import static org.elasticsearch.test.EqualsHashCodeTestUtils.checkEqualsAndHashCode;
import static org.elasticsearch.test.XContentTestUtils.insertRandomFields;
import static org.hamcrest.CoreMatchers.containsString;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.bytes.BytesReference;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.bytes.BytesReference;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.bytes.BytesReference;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.bytes.BytesReference;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.action.support.IndicesOptions;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.OpenSearchException;
import org.elasticsearch.action.OriginalIndices;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.bytes.BytesReference;
@ -31,7 +31,7 @@ import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.common.xcontent.json.JsonXContent;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.rankeval.RankEvalSpec.ScriptWithId;
import org.opensearch.index.rankeval.RankEvalSpec.ScriptWithId;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.builder.SearchSourceBuilder;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.OriginalIndices;
import org.elasticsearch.common.bytes.BytesReference;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.search.MultiSearchRequest;

View File

@ -17,7 +17,7 @@
* under the License.
*/
package org.elasticsearch.index.rankeval;
package org.opensearch.index.rankeval;
import com.carrotsearch.randomizedtesting.annotations.Name;
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;