ThemeQueryCatalogOptimizerGapTest.java
/*******************************************************************************
* Copyright (c) 2025 Eclipse RDF4J contributors.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*******************************************************************************/
// Some portions generated by Codex
package org.eclipse.rdf4j.benchmark.common;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.List;
import java.util.Locale;
import org.eclipse.rdf4j.benchmark.rio.util.ThemeDataSetGenerator.Theme;
import org.junit.jupiter.api.Test;
class ThemeQueryCatalogOptimizerGapTest {
private static final String OPTIONAL_FILTER_MARKER = "FILTER(?OPT";
private static final String DISJUNCTIVE_MARKER = "||";
private static final String IN_LIST_MARKER = " IN ";
@Test
void eachQueryTargetsKnownOptimizerGaps() {
for (Theme theme : Theme.values()) {
List<String> queries = ThemeQueryCatalog.queriesFor(theme);
assertEquals(ThemeQueryCatalog.QUERY_COUNT, queries.size(),
"Unexpected query count for theme " + theme);
for (int index = 0; index < queries.size(); index++) {
String query = queries.get(index);
String normalized = query.toUpperCase(Locale.ROOT);
boolean hasGapMarker = normalized.contains(OPTIONAL_FILTER_MARKER)
|| normalized.contains(DISJUNCTIVE_MARKER)
|| normalized.contains(IN_LIST_MARKER);
assertTrue(hasGapMarker, "Theme " + theme + " query " + index
+ " lacks optimizer-gap markers: " + query);
}
}
}
}