Skip to content

Commit 7bbe7ee

Browse files
committed
Fix testing for dense vectors and block loaders
1 parent 0539aff commit 7bbe7ee

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

server/src/test/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapperTests.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.elasticsearch.test.ESTestCase;
5454
import org.elasticsearch.test.index.IndexVersionUtils;
5555
import org.elasticsearch.xcontent.XContentBuilder;
56+
import org.hamcrest.Matcher;
5657
import org.junit.AssumptionViolatedException;
5758

5859
import java.io.IOException;
@@ -61,9 +62,11 @@
6162
import java.util.List;
6263
import java.util.Map;
6364
import java.util.Set;
65+
import java.util.function.Function;
6466

6567
import static org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsFormat.DEFAULT_BEAM_WIDTH;
6668
import static org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsFormat.DEFAULT_MAX_CONN;
69+
import static org.hamcrest.Matchers.closeTo;
6770
import static org.hamcrest.Matchers.containsString;
6871
import static org.hamcrest.Matchers.equalTo;
6972
import static org.hamcrest.Matchers.instanceOf;
@@ -2244,6 +2247,26 @@ protected boolean supportsEmptyInputArray() {
22442247
return false;
22452248
}
22462249

2250+
@Override
2251+
protected BlockReaderSupport getSupportedReaders(MapperService mapper, String loaderFieldName) {
2252+
return new BlockReaderSupport(true, true, mapper, loaderFieldName);
2253+
}
2254+
2255+
@Override
2256+
protected Function<Object, Object> loadBlockExpected(BlockReaderSupport blockReaderSupport, boolean columnReader) {
2257+
DenseVectorFieldType ft = (DenseVectorFieldType) blockReaderSupport.mapper().fieldType(blockReaderSupport.loaderFieldName());
2258+
if (ft.getElementType() != ElementType.FLOAT) {
2259+
return null;
2260+
}
2261+
2262+
return Function.identity();
2263+
}
2264+
2265+
@Override
2266+
protected Matcher<?> blockItemMatcher(Object expected) {
2267+
return closeTo((double) expected, 0.000001);
2268+
}
2269+
22472270
private static class DenseVectorSyntheticSourceSupport implements SyntheticSourceSupport {
22482271
private final int dims = between(5, 1000);
22492272
private final ElementType elementType = randomFrom(ElementType.BYTE, ElementType.FLOAT, ElementType.BIT);

0 commit comments

Comments
 (0)