Search in sources :

Example 11 with Tuple

use of edu.uci.ics.texera.api.tuple.Tuple in project textdb by TextDB.

the class ComparableMatcherTest method testIntegerMatching6.

/**
 * Verifies the behavior of ComparableMatcher<Integer> with matching type NOT_EQAUL_TO
 *
 * @throws Exception
 */
@Test
public void testIntegerMatching6() throws Exception {
    // Prepare the query
    int threshold = 43;
    Attribute attribute = TestConstants.AGE_ATTR;
    String attributeName = attribute.getName();
    ComparisonType matchingType = ComparisonType.NOT_EQUAL_TO;
    // Perform the query
    List<Tuple> returnedResults = getQueryResults(attributeName, matchingType, threshold);
    List<Tuple> expectedResults = new ArrayList<>();
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(0));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(1));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(2));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(4));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(5));
    // check the results
    Assert.assertEquals(expectedResults.size(), returnedResults.size());
    Assert.assertTrue(TestUtils.equals(expectedResults, returnedResults));
}
Also used : Attribute(edu.uci.ics.texera.api.schema.Attribute) ArrayList(java.util.ArrayList) Tuple(edu.uci.ics.texera.api.tuple.Tuple) Test(org.junit.Test)

Example 12 with Tuple

use of edu.uci.ics.texera.api.tuple.Tuple in project textdb by TextDB.

the class ComparableMatcherTest method testIntegerMatching4.

/**
 * Verifies the behavior of ComparableMatcher<Integer> with matching type LESS_THAN_OR_EQAUL_TO
 *
 * @throws Exception
 */
@Test
public void testIntegerMatching4() throws Exception {
    // Prepare the query
    int threshold = 43;
    Attribute attribute = TestConstants.AGE_ATTR;
    String attributeName = attribute.getName();
    ComparisonType matchingType = ComparisonType.LESS_THAN_OR_EQUAL_TO;
    // Perform the query
    List<Tuple> returnedResults = getQueryResults(attributeName, matchingType, threshold);
    List<Tuple> expectedResults = new ArrayList<>();
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(3));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(4));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(5));
    // check the results
    Assert.assertEquals(expectedResults.size(), returnedResults.size());
    Assert.assertTrue(TestUtils.equals(expectedResults, returnedResults));
}
Also used : Attribute(edu.uci.ics.texera.api.schema.Attribute) ArrayList(java.util.ArrayList) Tuple(edu.uci.ics.texera.api.tuple.Tuple) Test(org.junit.Test)

Example 13 with Tuple

use of edu.uci.ics.texera.api.tuple.Tuple in project textdb by TextDB.

the class ComparableMatcherTest method testIntegerMatching5.

/**
 * Verifies the behavior of ComparableMatcher<Integer> with matching type LESS_THAN
 *
 * @throws Exception
 */
@Test
public void testIntegerMatching5() throws Exception {
    // Prepare the query
    int threshold = 43;
    Attribute attribute = TestConstants.AGE_ATTR;
    String attributeName = attribute.getName();
    ComparisonType matchingType = ComparisonType.LESS_THAN;
    // Perform the query
    List<Tuple> returnedResults = getQueryResults(attributeName, matchingType, threshold);
    List<Tuple> expectedResults = new ArrayList<>();
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(4));
    expectedResults.add(TestConstants.getSamplePeopleTuples().get(5));
    // check the results
    Assert.assertEquals(expectedResults.size(), returnedResults.size());
    Assert.assertTrue(TestUtils.equals(expectedResults, returnedResults));
}
Also used : Attribute(edu.uci.ics.texera.api.schema.Attribute) ArrayList(java.util.ArrayList) Tuple(edu.uci.ics.texera.api.tuple.Tuple) Test(org.junit.Test)

Example 14 with Tuple

use of edu.uci.ics.texera.api.tuple.Tuple in project textdb by TextDB.

the class OneToNBroadcastConnectorTest method testTwoOutputsWithProjection.

/*
     * This test connects Connector with Projection
     */
@Test
public void testTwoOutputsWithProjection() throws TexeraException {
    IOperator sourceOperator = new ScanBasedSourceOperator(new ScanSourcePredicate(PEOPLE_TABLE));
    List<String> projectionFields = Arrays.asList(TestConstants.DESCRIPTION);
    Schema projectionSchema = new Schema(TestConstants.DESCRIPTION_ATTR);
    IField[] fields1 = { new TextField("Tall Angry") };
    IField[] fields2 = { new TextField("Short Brown") };
    IField[] fields3 = { new TextField("White Angry") };
    IField[] fields4 = { new TextField("Lin Clooney is Short and lin clooney is Angry") };
    IField[] fields5 = { new TextField("Tall Fair") };
    IField[] fields6 = { new TextField("Short angry") };
    Tuple tuple1 = new Tuple(projectionSchema, fields1);
    Tuple tuple2 = new Tuple(projectionSchema, fields2);
    Tuple tuple3 = new Tuple(projectionSchema, fields3);
    Tuple tuple4 = new Tuple(projectionSchema, fields4);
    Tuple tuple5 = new Tuple(projectionSchema, fields5);
    Tuple tuple6 = new Tuple(projectionSchema, fields6);
    List<Tuple> expectedResults = Arrays.asList(tuple1, tuple2, tuple3, tuple4, tuple5, tuple6);
    ProjectionPredicate projectionPredicate = new ProjectionPredicate(projectionFields);
    ProjectionOperator projection1 = new ProjectionOperator(projectionPredicate);
    ProjectionOperator projection2 = new ProjectionOperator(projectionPredicate);
    OneToNBroadcastConnector connector = new OneToNBroadcastConnector(2);
    connector.setInputOperator(sourceOperator);
    projection1.setInputOperator(connector.getOutputOperator(0));
    projection2.setInputOperator(connector.getOutputOperator(1));
    projection1.open();
    List<Tuple> projection1Results = new ArrayList<>();
    Tuple nextTuple = null;
    while ((nextTuple = projection1.getNextTuple()) != null) {
        projection1Results.add(nextTuple);
    }
    projection1.close();
    projection2.open();
    List<Tuple> projection2Results = new ArrayList<>();
    nextTuple = null;
    while ((nextTuple = projection2.getNextTuple()) != null) {
        projection2Results.add(nextTuple);
    }
    projection2.close();
    Assert.assertTrue(TestUtils.equals(expectedResults, projection1Results));
    Assert.assertTrue(TestUtils.equals(expectedResults, projection2Results));
    Assert.assertTrue(TestUtils.equals(projection1Results, projection2Results));
}
Also used : ProjectionOperator(edu.uci.ics.texera.dataflow.projection.ProjectionOperator) IOperator(edu.uci.ics.texera.api.dataflow.IOperator) Schema(edu.uci.ics.texera.api.schema.Schema) ArrayList(java.util.ArrayList) IField(edu.uci.ics.texera.api.field.IField) ProjectionPredicate(edu.uci.ics.texera.dataflow.projection.ProjectionPredicate) ScanBasedSourceOperator(edu.uci.ics.texera.dataflow.source.scan.ScanBasedSourceOperator) TextField(edu.uci.ics.texera.api.field.TextField) ScanSourcePredicate(edu.uci.ics.texera.dataflow.source.scan.ScanSourcePredicate) Tuple(edu.uci.ics.texera.api.tuple.Tuple) Test(org.junit.Test)

Example 15 with Tuple

use of edu.uci.ics.texera.api.tuple.Tuple in project textdb by TextDB.

the class OneToNBroadcastConnectorTest method setUp.

@BeforeClass
public static void setUp() throws Exception {
    RelationManager relationManager = RelationManager.getInstance();
    // create the people table and write tuples
    relationManager.createTable(PEOPLE_TABLE, TestUtils.getDefaultTestIndex().resolve(PEOPLE_TABLE), TestConstants.SCHEMA_PEOPLE, LuceneAnalyzerConstants.standardAnalyzerString());
    DataWriter peopleDataWriter = relationManager.getTableDataWriter(PEOPLE_TABLE);
    peopleDataWriter.open();
    for (Tuple tuple : TestConstants.getSamplePeopleTuples()) {
        peopleDataWriter.insertTuple(tuple);
    }
    peopleDataWriter.close();
}
Also used : Tuple(edu.uci.ics.texera.api.tuple.Tuple) RelationManager(edu.uci.ics.texera.storage.RelationManager) DataWriter(edu.uci.ics.texera.storage.DataWriter) BeforeClass(org.junit.BeforeClass)

Aggregations

Tuple (edu.uci.ics.texera.api.tuple.Tuple)280 ArrayList (java.util.ArrayList)167 Test (org.junit.Test)158 Schema (edu.uci.ics.texera.api.schema.Schema)108 IField (edu.uci.ics.texera.api.field.IField)106 Span (edu.uci.ics.texera.api.span.Span)99 TextField (edu.uci.ics.texera.api.field.TextField)90 StringField (edu.uci.ics.texera.api.field.StringField)83 IntegerField (edu.uci.ics.texera.api.field.IntegerField)80 Attribute (edu.uci.ics.texera.api.schema.Attribute)75 DoubleField (edu.uci.ics.texera.api.field.DoubleField)59 DateField (edu.uci.ics.texera.api.field.DateField)55 SimpleDateFormat (java.text.SimpleDateFormat)53 DataWriter (edu.uci.ics.texera.storage.DataWriter)32 Dictionary (edu.uci.ics.texera.dataflow.dictionarymatcher.Dictionary)30 ListField (edu.uci.ics.texera.api.field.ListField)27 ScanBasedSourceOperator (edu.uci.ics.texera.dataflow.source.scan.ScanBasedSourceOperator)21 ScanSourcePredicate (edu.uci.ics.texera.dataflow.source.scan.ScanSourcePredicate)21 KeywordMatcherSourceOperator (edu.uci.ics.texera.dataflow.keywordmatcher.KeywordMatcherSourceOperator)20 RelationManager (edu.uci.ics.texera.storage.RelationManager)19