package com.ldbc.driver.workloads.ldbc.snb.bi;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
import com.ldbc.driver.WorkloadException;
import com.ldbc.driver.generator.GeneratorFactory;
import com.ldbc.driver.generator.RandomDataGeneratorFactory;
import org.hamcrest.CoreMatchers;
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class BiReadEventStreamReadersTest
{
static final GeneratorFactory GENERATOR_FACTORY = new GeneratorFactory( new RandomDataGeneratorFactory( 42l ) );
@Test
public void shouldParseAllQuery1Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_1_CSV_ROWS();
System.out.println( data + "\n" );
Query1EventStreamReader reader = new Query1EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery1PostingSummary operation;
operation = (LdbcSnbBiQuery1PostingSummary) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
operation = (LdbcSnbBiQuery1PostingSummary) reader.next();
assertThat( operation.date(), is( 1441351591756l ) );
// loops back around to first
operation = (LdbcSnbBiQuery1PostingSummary) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery2Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_2_CSV_ROWS();
System.out.println( data + "\n" );
Query2EventStreamReader reader = new Query2EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery2TopTags operation;
operation = (LdbcSnbBiQuery2TopTags) reader.next();
assertThat( operation.dateA(), is( 1441351591755l ) );
assertThat( operation.dateB(), is( 1441351591755l ) );
assertThat( operation.countries(),
CoreMatchers.<List<String>>equalTo( Lists.newArrayList( "countryA", "countryB" ) ) );
assertThat( operation.endOfSimulationTime(), is( 1l ) );
assertThat( operation.messageThreshold(), is( 10 ) );
operation = (LdbcSnbBiQuery2TopTags) reader.next();
assertThat( operation.dateA(), is( 1441351591755l ) );
assertThat( operation.dateB(), is( 1441351591755l ) );
assertThat( operation.countries(),
CoreMatchers.<List<String>>equalTo( Lists.newArrayList( "countryA", "countryC" ) ) );
assertThat( operation.endOfSimulationTime(), is( 2l ) );
assertThat( operation.messageThreshold(), is( 20 ) );
operation = (LdbcSnbBiQuery2TopTags) reader.next();
assertThat( operation.dateA(), is( 1441351591755l ) );
assertThat( operation.dateB(), is( 1441351591756l ) );
assertThat( operation.countries(),
CoreMatchers.<List<String>>equalTo( Lists.newArrayList( "countryB", "countryD", "countryE" ) ) );
assertThat( operation.endOfSimulationTime(), is( Long.MAX_VALUE ) );
assertThat( operation.messageThreshold(), is( 30 ) );
// loops back around to first
operation = (LdbcSnbBiQuery2TopTags) reader.next();
assertThat( operation.dateA(), is( 1441351591755l ) );
assertThat( operation.dateB(), is( 1441351591755l ) );
assertThat( operation.countries(),
CoreMatchers.<List<String>>equalTo( Lists.newArrayList( "countryA", "countryB" ) ) );
assertThat( operation.endOfSimulationTime(), is( 1l ) );
assertThat( operation.messageThreshold(), is( 10 ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery3Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_3_CSV_ROWS();
System.out.println( data + "\n" );
Query3EventStreamReader reader = new Query3EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery3TagEvolution operation;
operation = (LdbcSnbBiQuery3TagEvolution) reader.next();
assertThat( operation.range1Start(), is( 1l ) );
assertThat( operation.range1End(), is( 2l ) );
assertThat( operation.range2Start(), is( 3l ) );
assertThat( operation.range2End(), is( 4l ) );
operation = (LdbcSnbBiQuery3TagEvolution) reader.next();
assertThat( operation.range1Start(), is( 5l ) );
assertThat( operation.range1End(), is( 6l ) );
assertThat( operation.range2Start(), is( 7l ) );
assertThat( operation.range2End(), is( 8l ) );
operation = (LdbcSnbBiQuery3TagEvolution) reader.next();
assertThat( operation.range1Start(), is( Long.MAX_VALUE ) );
assertThat( operation.range1End(), is( Long.MAX_VALUE ) );
assertThat( operation.range2Start(), is( Long.MAX_VALUE ) );
assertThat( operation.range2End(), is( Long.MAX_VALUE ) );
// loops back around to first
operation = (LdbcSnbBiQuery3TagEvolution) reader.next();
assertThat( operation.range1Start(), is( 1l ) );
assertThat( operation.range1End(), is( 2l ) );
assertThat( operation.range2Start(), is( 3l ) );
assertThat( operation.range2End(), is( 4l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery4Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_4_CSV_ROWS();
System.out.println( data + "\n" );
Query4EventStreamReader reader = new Query4EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery4PopularCountryTopics operation;
operation = (LdbcSnbBiQuery4PopularCountryTopics) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Cameroon" ) );
operation = (LdbcSnbBiQuery4PopularCountryTopics) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Colombia" ) );
operation = (LdbcSnbBiQuery4PopularCountryTopics) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Niger" ) );
operation = (LdbcSnbBiQuery4PopularCountryTopics) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Sweden" ) );
// loops back around to first
operation = (LdbcSnbBiQuery4PopularCountryTopics) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Cameroon" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery5Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_5_CSV_ROWS();
System.out.println( data + "\n" );
Query5EventStreamReader reader = new Query5EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery5TopCountryPosters operation;
operation = (LdbcSnbBiQuery5TopCountryPosters) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
operation = (LdbcSnbBiQuery5TopCountryPosters) reader.next();
assertThat( operation.country(), is( "Peru" ) );
operation = (LdbcSnbBiQuery5TopCountryPosters) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
operation = (LdbcSnbBiQuery5TopCountryPosters) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
// loops back around to first
operation = (LdbcSnbBiQuery5TopCountryPosters) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery6Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_6_CSV_ROWS();
System.out.println( data + "\n" );
Query6EventStreamReader reader = new Query6EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery6ActivePosters operation;
operation = (LdbcSnbBiQuery6ActivePosters) reader.next();
assertThat( operation.tag(), is( "Justin_Timberlake" ) );
operation = (LdbcSnbBiQuery6ActivePosters) reader.next();
assertThat( operation.tag(), is( "Josip_Broz_Tito" ) );
operation = (LdbcSnbBiQuery6ActivePosters) reader.next();
assertThat( operation.tag(), is( "Barry_Manilow" ) );
operation = (LdbcSnbBiQuery6ActivePosters) reader.next();
assertThat( operation.tag(), is( "Charles_Darwin" ) );
// loops back around to first
operation = (LdbcSnbBiQuery6ActivePosters) reader.next();
assertThat( operation.tag(), is( "Justin_Timberlake" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery7Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_7_CSV_ROWS();
System.out.println( data + "\n" );
Query7EventStreamReader reader = new Query7EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery7AuthoritativeUsers operation;
operation = (LdbcSnbBiQuery7AuthoritativeUsers) reader.next();
assertThat( operation.tag(), is( "Franz_Schubert" ) );
operation = (LdbcSnbBiQuery7AuthoritativeUsers) reader.next();
assertThat( operation.tag(), is( "Bill_Clinton" ) );
operation = (LdbcSnbBiQuery7AuthoritativeUsers) reader.next();
assertThat( operation.tag(), is( "Dante_Alighieri" ) );
operation = (LdbcSnbBiQuery7AuthoritativeUsers) reader.next();
assertThat( operation.tag(), is( "Khalid_Sheikh_Mohammed" ) );
// loops back around to first
operation = (LdbcSnbBiQuery7AuthoritativeUsers) reader.next();
assertThat( operation.tag(), is( "Franz_Schubert" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery8Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_8_CSV_ROWS();
System.out.println( data + "\n" );
Query8EventStreamReader reader = new Query8EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery8RelatedTopics operation;
operation = (LdbcSnbBiQuery8RelatedTopics) reader.next();
assertThat( operation.tag(), is( "Alanis_Morissette" ) );
operation = (LdbcSnbBiQuery8RelatedTopics) reader.next();
assertThat( operation.tag(), is( "\u00c9amon_de_Valera" ) );
operation = (LdbcSnbBiQuery8RelatedTopics) reader.next();
assertThat( operation.tag(), is( "Juhi_Chawla" ) );
operation = (LdbcSnbBiQuery8RelatedTopics) reader.next();
assertThat( operation.tag(), is( "Manuel_Noriega" ) );
// loops back around to first
operation = (LdbcSnbBiQuery8RelatedTopics) reader.next();
assertThat( operation.tag(), is( "Alanis_Morissette" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery9Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_9_CSV_ROWS();
System.out.println( data + "\n" );
Query9EventStreamReader reader = new Query9EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery9RelatedForums operation;
operation = (LdbcSnbBiQuery9RelatedForums) reader.next();
assertThat( operation.tagClassA(), is( "Person" ) );
assertThat( operation.tagClassB(), is( "OfficeHolder" ) );
assertThat( operation.threshold(), is( 1 ) );
operation = (LdbcSnbBiQuery9RelatedForums) reader.next();
assertThat( operation.tagClassA(), is( "Person" ) );
assertThat( operation.tagClassB(), is( "Writer" ) );
assertThat( operation.threshold(), is( 2 ) );
operation = (LdbcSnbBiQuery9RelatedForums) reader.next();
assertThat( operation.tagClassA(), is( "Person" ) );
assertThat( operation.tagClassB(), is( "Single" ) );
assertThat( operation.threshold(), is( 3 ) );
operation = (LdbcSnbBiQuery9RelatedForums) reader.next();
assertThat( operation.tagClassA(), is( "Person" ) );
assertThat( operation.tagClassB(), is( "Country" ) );
assertThat( operation.threshold(), is( 4 ) );
// loops back around to first
operation = (LdbcSnbBiQuery9RelatedForums) reader.next();
assertThat( operation.tagClassA(), is( "Person" ) );
assertThat( operation.tagClassB(), is( "OfficeHolder" ) );
assertThat( operation.threshold(), is( 1 ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery10Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_10_CSV_ROWS();
System.out.println( data + "\n" );
Query10EventStreamReader reader = new Query10EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery10TagPerson operation;
operation = (LdbcSnbBiQuery10TagPerson) reader.next();
assertThat( operation.tag(), is( "Franz_Schubert" ) );
operation = (LdbcSnbBiQuery10TagPerson) reader.next();
assertThat( operation.tag(), is( "Bill_Clinton" ) );
operation = (LdbcSnbBiQuery10TagPerson) reader.next();
assertThat( operation.tag(), is( "Dante_Alighieri" ) );
operation = (LdbcSnbBiQuery10TagPerson) reader.next();
assertThat( operation.tag(), is( "Khalid_Sheikh_Mohammed" ) );
// loops back around to first
operation = (LdbcSnbBiQuery10TagPerson) reader.next();
assertThat( operation.tag(), is( "Franz_Schubert" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery11Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_11_CSV_ROWS();
System.out.println( data + "\n" );
Query11EventStreamReader reader = new Query11EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery11UnrelatedReplies operation;
operation = (LdbcSnbBiQuery11UnrelatedReplies) reader.next();
assertThat( operation.country(), is( "Cameroon" ) );
assertThat( operation.blackList(), CoreMatchers.<List<String>>is( Lists.newArrayList( "Writer", "Reader" ) ) );
operation = (LdbcSnbBiQuery11UnrelatedReplies) reader.next();
assertThat( operation.country(), is( "Colombia" ) );
assertThat( operation.blackList(), CoreMatchers.<List<String>>is( Lists.newArrayList( "Writer", "Cake" ) ) );
operation = (LdbcSnbBiQuery11UnrelatedReplies) reader.next();
assertThat( operation.country(), is( "Niger" ) );
assertThat( operation.blackList(), CoreMatchers.<List<String>>is( Lists.newArrayList( "Pie" ) ) );
operation = (LdbcSnbBiQuery11UnrelatedReplies) reader.next();
assertThat( operation.country(), is( "Sweden" ) );
assertThat( operation.blackList(), CoreMatchers.<List<String>>is( Lists.newArrayList( "Writer" ) ) );
// loops back around to first
operation = (LdbcSnbBiQuery11UnrelatedReplies) reader.next();
assertThat( operation.country(), is( "Cameroon" ) );
assertThat( operation.blackList(), CoreMatchers.<List<String>>is( Lists.newArrayList( "Writer", "Reader" ) ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery12Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_12_CSV_ROWS();
System.out.println( data + "\n" );
Query12EventStreamReader reader = new Query12EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery12TrendingPosts operation;
operation = (LdbcSnbBiQuery12TrendingPosts) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
operation = (LdbcSnbBiQuery12TrendingPosts) reader.next();
assertThat( operation.date(), is( 1441351591756l ) );
// loops back around to first
operation = (LdbcSnbBiQuery12TrendingPosts) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery13Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_13_CSV_ROWS();
System.out.println( data + "\n" );
Query13EventStreamReader reader = new Query13EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery13PopularMonthlyTags operation;
operation = (LdbcSnbBiQuery13PopularMonthlyTags) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
operation = (LdbcSnbBiQuery13PopularMonthlyTags) reader.next();
assertThat( operation.country(), is( "Peru" ) );
operation = (LdbcSnbBiQuery13PopularMonthlyTags) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
operation = (LdbcSnbBiQuery13PopularMonthlyTags) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
// loops back around to first
operation = (LdbcSnbBiQuery13PopularMonthlyTags) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery14Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_14_CSV_ROWS();
System.out.println( data + "\n" );
Query14EventStreamReader reader = new Query14EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery14TopThreadInitiators operation;
operation = (LdbcSnbBiQuery14TopThreadInitiators) reader.next();
assertThat( operation.beginDate(), is( 1441351591755l ) );
assertThat( operation.endDate(), is( 1441351591756l ) );
operation = (LdbcSnbBiQuery14TopThreadInitiators) reader.next();
assertThat( operation.beginDate(), is( 1441351591756l ) );
assertThat( operation.endDate(), is( 1441351591757l ) );
// loops back around to first
operation = (LdbcSnbBiQuery14TopThreadInitiators) reader.next();
assertThat( operation.beginDate(), is( 1441351591755l ) );
assertThat( operation.endDate(), is( 1441351591756l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery15Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_15_CSV_ROWS();
System.out.println( data + "\n" );
Query15EventStreamReader reader = new Query15EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery15SocialNormals operation;
operation = (LdbcSnbBiQuery15SocialNormals) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
operation = (LdbcSnbBiQuery15SocialNormals) reader.next();
assertThat( operation.country(), is( "Peru" ) );
operation = (LdbcSnbBiQuery15SocialNormals) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
operation = (LdbcSnbBiQuery15SocialNormals) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
// loops back around to first
operation = (LdbcSnbBiQuery15SocialNormals) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery16Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_16_CSV_ROWS();
System.out.println( data + "\n" );
Query16EventStreamReader reader = new Query16EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery16ExpertsInSocialCircle operation;
operation = (LdbcSnbBiQuery16ExpertsInSocialCircle) reader.next();
assertThat( operation.person(), is( 1l ) );
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Cameroon" ) );
operation = (LdbcSnbBiQuery16ExpertsInSocialCircle) reader.next();
assertThat( operation.person(), is( 2l ) );
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Colombia" ) );
operation = (LdbcSnbBiQuery16ExpertsInSocialCircle) reader.next();
assertThat( operation.person(), is( 3l ) );
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Niger" ) );
operation = (LdbcSnbBiQuery16ExpertsInSocialCircle) reader.next();
assertThat( operation.person(), is( 4l ) );
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Sweden" ) );
// loops back around to first
operation = (LdbcSnbBiQuery16ExpertsInSocialCircle) reader.next();
assertThat( operation.person(), is( 1l ) );
assertThat( operation.tagClass(), is( "Writer" ) );
assertThat( operation.country(), is( "Cameroon" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery17Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_17_CSV_ROWS();
System.out.println( data + "\n" );
Query17EventStreamReader reader = new Query17EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery17FriendshipTriangles operation;
operation = (LdbcSnbBiQuery17FriendshipTriangles) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
operation = (LdbcSnbBiQuery17FriendshipTriangles) reader.next();
assertThat( operation.country(), is( "Peru" ) );
operation = (LdbcSnbBiQuery17FriendshipTriangles) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
operation = (LdbcSnbBiQuery17FriendshipTriangles) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
// loops back around to first
operation = (LdbcSnbBiQuery17FriendshipTriangles) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery18Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_18_CSV_ROWS();
System.out.println( data + "\n" );
Query18EventStreamReader reader = new Query18EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery18PersonPostCounts operation;
operation = (LdbcSnbBiQuery18PersonPostCounts) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
operation = (LdbcSnbBiQuery18PersonPostCounts) reader.next();
assertThat( operation.date(), is( 1441351591756l ) );
// loops back around to first
operation = (LdbcSnbBiQuery18PersonPostCounts) reader.next();
assertThat( operation.date(), is( 1441351591755l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery19Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_19_CSV_ROWS();
System.out.println( data + "\n" );
Query19EventStreamReader reader = new Query19EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery19StrangerInteraction operation;
operation = (LdbcSnbBiQuery19StrangerInteraction) reader.next();
assertThat( operation.date(), is( 1l ) );
assertThat( operation.tagClassA(), is( "Writer" ) );
assertThat( operation.tagClassB(), is( "Single" ) );
operation = (LdbcSnbBiQuery19StrangerInteraction) reader.next();
assertThat( operation.date(), is( 2l ) );
assertThat( operation.tagClassA(), is( "Writer" ) );
assertThat( operation.tagClassB(), is( "Country" ) );
operation = (LdbcSnbBiQuery19StrangerInteraction) reader.next();
assertThat( operation.date(), is( 3l ) );
assertThat( operation.tagClassA(), is( "Writer" ) );
assertThat( operation.tagClassB(), is( "Album" ) );
operation = (LdbcSnbBiQuery19StrangerInteraction) reader.next();
assertThat( operation.date(), is( 4l ) );
assertThat( operation.tagClassA(), is( "Writer" ) );
assertThat( operation.tagClassB(), is( "BritishRoyalty" ) );
// loops back around to first
operation = (LdbcSnbBiQuery19StrangerInteraction) reader.next();
assertThat( operation.date(), is( 1l ) );
assertThat( operation.tagClassA(), is( "Writer" ) );
assertThat( operation.tagClassB(), is( "Single" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery20Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_20_CSV_ROWS();
System.out.println( data + "\n" );
Query20EventStreamReader reader = new Query20EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery20HighLevelTopics operation;
operation = (LdbcSnbBiQuery20HighLevelTopics) reader.next();
assertThat( operation.tagClasses(), CoreMatchers.<List<String>>is( Lists.newArrayList( "a", "b", "c" ) ) );
operation = (LdbcSnbBiQuery20HighLevelTopics) reader.next();
assertThat( operation.tagClasses(), CoreMatchers.<List<String>>is( Lists.newArrayList( "b", "c" ) ) );
operation = (LdbcSnbBiQuery20HighLevelTopics) reader.next();
assertThat( operation.tagClasses(), CoreMatchers.<List<String>>is( Lists.newArrayList( "c" ) ) );
// loops back around to first
operation = (LdbcSnbBiQuery20HighLevelTopics) reader.next();
assertThat( operation.tagClasses(), CoreMatchers.<List<String>>is( Lists.newArrayList( "a", "b", "c" ) ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery21Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_21_CSV_ROWS();
System.out.println( data + "\n" );
Query21EventStreamReader reader = new Query21EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery21Zombies operation;
operation = (LdbcSnbBiQuery21Zombies) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertThat( operation.endDate(), is( 1l ) );
operation = (LdbcSnbBiQuery21Zombies) reader.next();
assertThat( operation.country(), is( "Peru" ) );
assertThat( operation.endDate(), is( 2l ) );
operation = (LdbcSnbBiQuery21Zombies) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
assertThat( operation.endDate(), is( 3l ) );
operation = (LdbcSnbBiQuery21Zombies) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
assertThat( operation.endDate(), is( 4l ) );
// loops back around to first
operation = (LdbcSnbBiQuery21Zombies) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertThat( operation.endDate(), is( 1l ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery22Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_22_CSV_ROWS();
System.out.println( data + "\n" );
Query22EventStreamReader reader = new Query22EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery22InternationalDialog operation;
operation = (LdbcSnbBiQuery22InternationalDialog) reader.next();
assertThat( operation.countryX(), is( "Germany" ) );
assertThat( operation.countryY(), is( "Pakistan" ) );
operation = (LdbcSnbBiQuery22InternationalDialog) reader.next();
assertThat( operation.countryX(), is( "Germany" ) );
assertThat( operation.countryY(), is( "Russia" ) );
operation = (LdbcSnbBiQuery22InternationalDialog) reader.next();
assertThat( operation.countryX(), is( "Germany" ) );
assertThat( operation.countryY(), is( "Vietnam" ) );
operation = (LdbcSnbBiQuery22InternationalDialog) reader.next();
assertThat( operation.countryX(), is( "Germany" ) );
assertThat( operation.countryY(), is( "Philippines" ) );
// loops back around to first
operation = (LdbcSnbBiQuery22InternationalDialog) reader.next();
assertThat( operation.countryX(), is( "Germany" ) );
assertThat( operation.countryY(), is( "Pakistan" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery23Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_23_CSV_ROWS();
System.out.println( data + "\n" );
Query23EventStreamReader reader = new Query23EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery23HolidayDestinations operation;
operation = (LdbcSnbBiQuery23HolidayDestinations) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
operation = (LdbcSnbBiQuery23HolidayDestinations) reader.next();
assertThat( operation.country(), is( "Peru" ) );
operation = (LdbcSnbBiQuery23HolidayDestinations) reader.next();
assertThat( operation.country(), is( "Tunisia" ) );
operation = (LdbcSnbBiQuery23HolidayDestinations) reader.next();
assertThat( operation.country(), is( "Venezuela" ) );
// loops back around to first
operation = (LdbcSnbBiQuery23HolidayDestinations) reader.next();
assertThat( operation.country(), is( "Kenya" ) );
assertTrue( reader.hasNext() );
}
@Test
public void shouldParseAllQuery24Events() throws IOException, ParseException, WorkloadException
{
// Given
String data = BiReadEventStreamReadersTestData.QUERY_24_CSV_ROWS();
System.out.println( data + "\n" );
Query24EventStreamReader reader = new Query24EventStreamReader(
new ByteArrayInputStream( data.getBytes( Charsets.UTF_8 ) ),
LdbcSnbBiWorkload.CHAR_SEEKER_PARAMS,
GENERATOR_FACTORY
);
// When
// Then
LdbcSnbBiQuery24MessagesByTopic operation;
operation = (LdbcSnbBiQuery24MessagesByTopic) reader.next();
assertThat( operation.tagClass(), is( "Person" ) );
operation = (LdbcSnbBiQuery24MessagesByTopic) reader.next();
assertThat( operation.tagClass(), is( "OfficeHolder" ) );
operation = (LdbcSnbBiQuery24MessagesByTopic) reader.next();
assertThat( operation.tagClass(), is( "Writer" ) );
operation = (LdbcSnbBiQuery24MessagesByTopic) reader.next();
assertThat( operation.tagClass(), is( "Single" ) );
// loops back around to first
operation = (LdbcSnbBiQuery24MessagesByTopic) reader.next();
assertThat( operation.tagClass(), is( "Person" ) );
assertTrue( reader.hasNext() );
}
}