adding single parse tests

This commit is contained in:
Mark Wolters 2024-02-21 12:29:45 -04:00
parent 31459a9ab1
commit 3acd6f2700
2 changed files with 35 additions and 7 deletions

View File

@ -26,7 +26,7 @@ import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.DatasetFilter;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.DatasetParser;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.FilteredDatasetParser;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.from_json.MultiConditionFilterByKeyword;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.from_json.SingleConditionFilterByKeyword;
import java.util.function.LongFunction;
@ -55,7 +55,7 @@ public class HdfToPcPredicatesByKeyword implements LongFunction<String> {
dataset = hdfFile.getDatasetByPath(datasetname);
recordCount = dataset.getDimensions()[0];
parser = DatasetParser.filteredParserFactory(parsername);
filter = new MultiConditionFilterByKeyword(filterportion);
filter = new SingleConditionFilterByKeyword(filterportion);
parser.setFilter(filter);
}
@ -64,6 +64,6 @@ public class HdfToPcPredicatesByKeyword implements LongFunction<String> {
long[] sliceOffset = {(l % recordCount)};
int[] sliceDimensions = {1};
String raw = ((String[])dataset.getData(sliceOffset, sliceDimensions))[0];
return parser.parse(raw);
return parser.parse(raw).replaceAll("match", "EQ");
}
}

View File

@ -19,6 +19,7 @@ package io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.from_json.MultiConditionFilterByKeyword;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.from_json.MultiConditionFilterByLevel;
import io.nosqlbench.virtdata.library.hdf5.from_long.to_string.predicate_parser.from_json.SingleConditionFilterByKeyword;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ -31,14 +32,14 @@ public class PineconeFilterParserTest {
"and": [
{
"department_name": {
"EQ": {
"match": {
"value": "Divided Shoes"
}
}
},
{
"department_type": {
"EQ": {
"match": {
"value": "Footwear"
}
}
@ -64,6 +65,15 @@ public class PineconeFilterParserTest {
assertEquals("Divided Shoes,Footwear", parsed);
}
@Test
public void testComparatorSingleParseByKeyword() {
PineconeFilterParser parser = new PineconeFilterParser();
SingleConditionFilterByKeyword scf = new SingleConditionFilterByKeyword("comparator");
parser.setFilter(scf);
String parsed = parser.parse(test1);
assertEquals("Divided Shoes", parsed);
}
@Test
public void testFieldParseByLevel() {
PineconeFilterParser parser = new PineconeFilterParser();
@ -82,13 +92,22 @@ public class PineconeFilterParserTest {
assertEquals("department_name,department_type", parsed);
}
@Test
public void testFieldSingleParseByKeyword() {
PineconeFilterParser parser = new PineconeFilterParser();
SingleConditionFilterByKeyword scf = new SingleConditionFilterByKeyword("field");
parser.setFilter(scf);
String parsed = parser.parse(test1);
assertEquals("department_name", parsed);
}
@Test
public void testOperatorParseByLevel() {
PineconeFilterParser parser = new PineconeFilterParser();
MultiConditionFilterByLevel mcf = new MultiConditionFilterByLevel(2, false);
parser.setFilter(mcf);
String parsed = parser.parse(test1);
assertEquals("EQ,EQ", parsed);
assertEquals("match,match", parsed);
}
@Test
@ -97,7 +116,16 @@ public class PineconeFilterParserTest {
MultiConditionFilterByKeyword mcf = new MultiConditionFilterByKeyword("operator");
parser.setFilter(mcf);
String parsed = parser.parse(test1);
assertEquals("EQ,EQ", parsed);
assertEquals("match,match", parsed);
}
@Test
public void testOperatorSingleParseByKeyword() {
PineconeFilterParser parser = new PineconeFilterParser();
SingleConditionFilterByKeyword mcf = new SingleConditionFilterByKeyword("operator");
parser.setFilter(mcf);
String parsed = parser.parse(test1);
assertEquals("match", parsed);
}
}