Skip to content

Commit e607195

Browse files
committed
Added tests to check string lengths to be of size 256 characters at most
1 parent 6d9cb59 commit e607195

File tree

5 files changed

+64
-7
lines changed

5 files changed

+64
-7
lines changed

src/main/java/ldbc/snb/datagen/generator/ForumGenerator.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import ldbc.snb.datagen.objects.Knows;
88
import ldbc.snb.datagen.objects.Person;
99
import ldbc.snb.datagen.util.RandomGeneratorFarm;
10+
import ldbc.snb.datagen.util.StringUtils;
1011
import ldbc.snb.datagen.vocabulary.SN;
1112

1213
import java.util.ArrayList;
@@ -25,7 +26,7 @@ public Forum createWall(RandomGeneratorFarm randomFarm, long forumId, Person per
2526
Forum forum = new Forum(SN.formId(SN.composeId(forumId,person.creationDate()+DatagenParams.deltaTime)),
2627
person.creationDate()+DatagenParams.deltaTime,
2728
new Person.PersonSummary(person),
28-
"Wall of " + person.firstName() + " " + person.lastName(),
29+
StringUtils.clampString("Wall of " + person.firstName() + " " + person.lastName(), 256),
2930
person.cityId(),
3031
language
3132
);
@@ -62,7 +63,7 @@ public Forum createGroup(RandomGeneratorFarm randomFarm, long forumId, Person pe
6263
Forum forum = new Forum(SN.formId(SN.composeId(forumId,date)),
6364
date,
6465
new Person.PersonSummary(person),
65-
"Group for " + Dictionaries.tags.getName(interestId).replace("\"","\\\"") + " in " + Dictionaries.places.getPlaceName(person.cityId()),
66+
StringUtils.clampString("Group for " + Dictionaries.tags.getName(interestId).replace("\"","\\\"") + " in " + Dictionaries.places.getPlaceName(person.cityId()),256),
6667
person.cityId(),
6768
language
6869
);
@@ -119,7 +120,7 @@ public Forum createAlbum(RandomGeneratorFarm randomFarm, long forumId, Person pe
119120
Forum forum = new Forum(SN.formId(SN.composeId(forumId,date)),
120121
date,
121122
new Person.PersonSummary(person),
122-
"Album " + numAlbum + " of " + person.firstName() + " " + person.lastName(),
123+
StringUtils.clampString("Album " + numAlbum + " of " + person.firstName() + " " + person.lastName(),256),
123124
person.cityId(),
124125
language
125126
);

src/main/java/ldbc/snb/datagen/hadoop/HadoopInvariantSerializer.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import ldbc.snb.datagen.objects.Tag;
99
import ldbc.snb.datagen.objects.TagClass;
1010
import ldbc.snb.datagen.serializer.InvariantSerializer;
11+
import ldbc.snb.datagen.util.StringUtils;
1112
import org.apache.hadoop.conf.Configuration;
1213

1314
import java.util.Iterator;
@@ -65,7 +66,7 @@ private void exportTagHierarchy(Tag tag) {
6566
exportedClasses_.add(classId);
6667
TagClass tagClass = new TagClass();
6768
tagClass.id = classId;
68-
tagClass.name = Dictionaries.tags.getClassName(classId);
69+
tagClass.name = StringUtils.clampString(Dictionaries.tags.getClassName(classId),256);
6970
tagClass.parent = Dictionaries.tags.getClassParent(tagClass.id);
7071
invariantSerializer_[nextFile()].export(tagClass);
7172
classId = tagClass.parent;
@@ -77,6 +78,7 @@ public void exportPlaces() {
7778
Iterator<Integer> it = locations.iterator();
7879
while(it.hasNext()) {
7980
Place place = Dictionaries.places.getLocation(it.next());
81+
place.setName(StringUtils.clampString(place.getName(),256));
8082
invariantSerializer_[nextFile()].export(place);
8183
}
8284
}
@@ -88,7 +90,7 @@ public void exportOrganizations() {
8890
Organization company = new Organization();
8991
company.id = it.next();
9092
company.type = Organization.OrganisationType.company;
91-
company.name = Dictionaries.companies.getCompanyName(company.id);
93+
company.name = StringUtils.clampString(Dictionaries.companies.getCompanyName(company.id),256);
9294
company.location = Dictionaries.companies.getCountry(company.id);
9395
invariantSerializer_[nextFile()].export(company);
9496
}
@@ -99,7 +101,7 @@ public void exportOrganizations() {
99101
Organization university = new Organization();
100102
university.id = it.next();
101103
university.type = Organization.OrganisationType.university;
102-
university.name = Dictionaries.universities.getUniversityName(university.id);
104+
university.name = StringUtils.clampString(Dictionaries.universities.getUniversityName(university.id),256);
103105
university.location = Dictionaries.universities.getUniversityCity(university.id);
104106
invariantSerializer_[nextFile()].export(university);
105107
}
@@ -111,7 +113,7 @@ public void exportTags() {
111113
while(it.hasNext()) {
112114
Tag tag = new Tag();
113115
tag.id = it.next();
114-
tag.name = Dictionaries.tags.getName(tag.id);
116+
tag.name = StringUtils.clampString(Dictionaries.tags.getName(tag.id),256);
115117
tag.name.replace("\"", "\\\"");
116118
tag.tagClass = Dictionaries.tags.getTagClass(tag.id);
117119
invariantSerializer_[nextFile()].export(tag);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ldbc.snb.datagen.util;
2+
3+
/**
4+
* Created by aprat on 25/11/16.
5+
*/
6+
public class StringUtils {
7+
8+
public static String clampString( String str, int length) {
9+
if(str.length() > length) return str.substring(0,length);
10+
return str;
11+
}
12+
}

src/test/java/ldbc/snb/datagen/test/LDBCDatagenTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public void postTest() {
5757
@Test
5858
public void forumTest() {
5959
testIdUniqueness(dir+"/forum_0_0.csv", 0);
60+
testStringLength(dir+"/forum_0_0.csv", 1, 256);
6061
}
6162

6263
@Test
@@ -68,21 +69,25 @@ public void commentTest() {
6869
@Test
6970
public void organisationTest() {
7071
testIdUniqueness(dir+"/organisation_0_0.csv", 0);
72+
testStringLength(dir+"/organisation_0_0.csv", 2, 256);
7173
}
7274

7375
@Test
7476
public void placeTest() {
7577
testIdUniqueness(dir+"/place_0_0.csv", 0);
78+
testStringLength(dir+"/place_0_0.csv", 1, 256);
7679
}
7780

7881
@Test
7982
public void tagTest() {
8083
testIdUniqueness(dir+"/tag_0_0.csv", 0);
84+
testStringLength(dir+"/tag_0_0.csv", 1, 256);
8185
}
8286

8387
@Test
8488
public void tagclassTest() {
8589
testIdUniqueness(dir+"/tagclass_0_0.csv", 0);
90+
testStringLength(dir+"/tagclass_0_0.csv", 1, 256);
8691
}
8792

8893
@Test
@@ -199,6 +204,7 @@ public void personLikesPostCheck() {
199204
@Test
200205
public void personEmailAddressCheck() {
201206
testIdExistance(dir+"/person_0_0.csv",0,dir+"/person_email_emailaddress_0_0.csv",0);
207+
testStringLength(dir+"/person_email_emailaddress_0_0.csv", 1, 256);
202208
}
203209

204210
// test update stream time consistency
@@ -420,4 +426,11 @@ public void testIdExistance(String fileToCheckExistanceOf, int columnToCheckExis
420426
assertEquals("ERROR PASSING "+fileToCheckExistanceOf+" ID EXISTANCE TEST",true, fileChecker.run(1));
421427
}
422428

429+
public void testStringLength(String fileToCheckExistanceOf, int columnToCheckExistanceOf, int length) {
430+
FileChecker fileChecker = new FileChecker(fileToCheckExistanceOf);
431+
StringLengthCheck lengthCheck = new StringLengthCheck(columnToCheckExistanceOf, length);
432+
fileChecker.addCheck(lengthCheck);
433+
assertEquals("ERROR PASSING "+fileToCheckExistanceOf+" ID EXISTANCE TEST",true, fileChecker.run(1));
434+
}
435+
423436
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package ldbc.snb.datagen.test.csv;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashSet;
5+
import java.util.List;
6+
7+
/**
8+
* Created by aprat on 18/12/15.
9+
*/
10+
public class StringLengthCheck extends Check {
11+
12+
private int length;
13+
14+
15+
16+
public StringLengthCheck(int column, int length) {
17+
super( "String length check of "+length+" unicode characters", (new ArrayList<Integer>()));
18+
this.length = length;
19+
this.getColumns().add(column);
20+
}
21+
22+
@Override
23+
public boolean check(List<String> vals) {
24+
for(String value : vals) {
25+
if(value.length() > length) return false;
26+
}
27+
return true;
28+
}
29+
}

0 commit comments

Comments
 (0)