Skip to content

Commit 2169d0e

Browse files
[7.7][ML] Unmute classification cardinality integ test (#54165) (#54174)
Adjusts test to work for new cardinality limit. Backport of #54165
1 parent bdd7be7 commit 2169d0e

File tree

1 file changed

+11
-6
lines changed
  • x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration

1 file changed

+11
-6
lines changed

x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -349,23 +349,28 @@ public void testStopAndRestart() throws Exception {
349349
assertEvaluation(KEYWORD_FIELD, KEYWORD_FIELD_VALUES, "ml." + predictedClassField);
350350
}
351351

352-
@AwaitsFix(bugUrl = "Muted until ml-cpp supports multiple classes")
353352
public void testDependentVariableCardinalityTooHighError() throws Exception {
354353
initialize("cardinality_too_high");
355354
indexData(sourceIndex, 6, 5, KEYWORD_FIELD);
356355

357-
// Index one more document with a class different than the two already used.
358-
client().execute(
359-
IndexAction.INSTANCE,
360-
new IndexRequest(sourceIndex).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).source(KEYWORD_FIELD, "fox")).actionGet();
356+
// Index enough documents to have more classes than the allowed limit
357+
BulkRequestBuilder bulkRequestBuilder = client().prepareBulk().setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
358+
for (int i = 0; i < Classification.MAX_DEPENDENT_VARIABLE_CARDINALITY - 1; i++) {
359+
IndexRequest indexRequest = new IndexRequest(sourceIndex).source(KEYWORD_FIELD, "fox-" + i);
360+
bulkRequestBuilder.add(indexRequest);
361+
}
362+
BulkResponse bulkResponse = bulkRequestBuilder.get();
363+
if (bulkResponse.hasFailures()) {
364+
fail("Failed to index data: " + bulkResponse.buildFailureMessage());
365+
}
361366

362367
DataFrameAnalyticsConfig config = buildAnalytics(jobId, sourceIndex, destIndex, null, new Classification(KEYWORD_FIELD));
363368
registerAnalytics(config);
364369
putAnalytics(config);
365370

366371
ElasticsearchStatusException e = expectThrows(ElasticsearchStatusException.class, () -> startAnalytics(jobId));
367372
assertThat(e.status().getStatus(), equalTo(400));
368-
assertThat(e.getMessage(), equalTo("Field [keyword-field] must have at most [2] distinct values but there were at least [3]"));
373+
assertThat(e.getMessage(), equalTo("Field [keyword-field] must have at most [30] distinct values but there were at least [31]"));
369374
}
370375

371376
public void testDependentVariableCardinalityTooHighButWithQueryMakesItWithinRange() throws Exception {

0 commit comments

Comments
 (0)