use of edu.uci.ics.textdb.exp.sink.tuple.TupleSink in project textdb by TextDB.
the class NlpSplitTest method test1.
@Test
public void test1() throws TextDBException, ParseException {
TupleSourceOperator tupleSource = new TupleSourceOperator(NlpSplitTestConstants.getOneToOneTestTuple(), NlpSplitTestConstants.SPLIT_SCHEMA);
NlpSplitOperator sentence_list = new NlpSplitOperator(new NlpSplitPredicate(NLPOutputType.ONE_TO_ONE, NlpSplitTestConstants.TEXT, SchemaConstants.SPAN_LIST));
TupleSink tupleSink = new TupleSink();
sentence_list.setInputOperator(tupleSource);
tupleSink.setInputOperator(sentence_list);
tupleSink.open();
List<Tuple> results = tupleSink.collectAllTuples();
tupleSink.close();
Assert.assertTrue(TestUtils.equals(NlpSplitTestConstants.getOneToOneResultTuple(), results));
}
use of edu.uci.ics.textdb.exp.sink.tuple.TupleSink in project textdb by TextDB.
the class NlpSplitTest method test2.
@Test
public void test2() throws TextDBException, ParseException {
TupleSourceOperator tupleSource = new TupleSourceOperator(NlpSplitTestConstants.getOneToManyTestTuple(), NlpSplitTestConstants.SPLIT_SCHEMA);
NlpSplitOperator sentence_list = new NlpSplitOperator(new NlpSplitPredicate(NLPOutputType.ONE_TO_MANY, NlpSplitTestConstants.TEXT, PropertyNameConstants.NLP_OUTPUT_TYPE));
TupleSink tupleSink = new TupleSink();
sentence_list.setInputOperator(tupleSource);
tupleSink.setInputOperator(sentence_list);
tupleSink.open();
List<Tuple> results = tupleSink.collectAllTuples();
tupleSink.close();
Assert.assertTrue(TestUtils.equals(NlpSplitTestConstants.getOneToManyResultTuple(), results));
Set<IDField> compset = new HashSet<IDField>();
for (Tuple result : results) {
Assert.assertFalse(compset.contains(result.getField(SchemaConstants._ID)));
compset.add(result.getField(SchemaConstants._ID));
}
}
use of edu.uci.ics.textdb.exp.sink.tuple.TupleSink in project textdb by TextDB.
the class LogicalPlanTest method testLogicalPlan2.
/*
* Test a valid operator graph.
* -> RegexMatcher -->
* KeywordSource --< >-- Join --> TupleSink
* -> NlpEntityOperator -->
*
*/
@Test
public void testLogicalPlan2() throws Exception {
LogicalPlan logicalPlan = getLogicalPlan2();
Plan queryPlan = logicalPlan.buildQueryPlan();
ISink tupleSink = queryPlan.getRoot();
Assert.assertTrue(tupleSink instanceof TupleSink);
IOperator join = ((TupleSink) tupleSink).getInputOperator();
Assert.assertTrue(join instanceof Join);
IOperator joinInput1 = ((Join) join).getInnerInputOperator();
Assert.assertTrue(joinInput1 instanceof RegexMatcher);
IOperator joinInput2 = ((Join) join).getOuterInputOperator();
Assert.assertTrue(joinInput2 instanceof NlpEntityOperator);
IOperator connectorOut1 = ((RegexMatcher) joinInput1).getInputOperator();
Assert.assertTrue(connectorOut1 instanceof ConnectorOutputOperator);
IOperator connectorOut2 = ((NlpEntityOperator) joinInput2).getInputOperator();
Assert.assertTrue(connectorOut2 instanceof ConnectorOutputOperator);
HashSet<Integer> connectorIndices = new HashSet<>();
connectorIndices.add(((ConnectorOutputOperator) connectorOut1).getOutputIndex());
connectorIndices.add(((ConnectorOutputOperator) connectorOut2).getOutputIndex());
Assert.assertEquals(connectorIndices.size(), 2);
OneToNBroadcastConnector connector1 = ((ConnectorOutputOperator) connectorOut1).getOwnerConnector();
OneToNBroadcastConnector connector2 = ((ConnectorOutputOperator) connectorOut2).getOwnerConnector();
Assert.assertSame(connector1, connector2);
IOperator keywordSource = connector1.getInputOperator();
Assert.assertTrue(keywordSource instanceof KeywordMatcherSourceOperator);
}
use of edu.uci.ics.textdb.exp.sink.tuple.TupleSink in project textdb by TextDB.
the class TupleSinkTest method testOpenClose.
@Test
public void testOpenClose() throws Exception {
TupleSink tupleSink = new TupleSink();
tupleSink.setInputOperator(inputOperator);
tupleSink.open();
// verify that inputOperator called open() method
Mockito.verify(inputOperator).open();
// assert that the tuple stream sink removes the PAYLOAD attribute
Assert.assertEquals(new Schema(SchemaConstants._ID_ATTRIBUTE, new Attribute("content", AttributeType.TEXT)), tupleSink.getOutputSchema());
tupleSink.close();
// verify that inputOperator called close() method
Mockito.verify(inputOperator).close();
}
use of edu.uci.ics.textdb.exp.sink.tuple.TupleSink in project textdb by TextDB.
the class TupleSinkTest method testGetNextTuple.
@Test
public void testGetNextTuple() throws Exception {
TupleSink tupleSink = new TupleSink();
tupleSink.setInputOperator(inputOperator);
Tuple sampleTuple = Mockito.mock(Tuple.class);
Mockito.when(sampleTuple.toString()).thenReturn("Sample Tuple");
Mockito.when(sampleTuple.getSchema()).thenReturn(inputSchema);
// Set the behavior for inputOperator,
// first it returns some non-null tuple and second time it returns null
Mockito.when(inputOperator.getNextTuple()).thenReturn(sampleTuple).thenReturn(null);
tupleSink.open();
tupleSink.getNextTuple();
// Verify that input operator's getNextTuple is called
Mockito.verify(inputOperator, Mockito.times(1)).getNextTuple();
tupleSink.close();
}
Aggregations