Skip to content

Commit 3cb7c24

Browse files
committed
Added 4 NameParser tests by country.
1 parent e0c0ccb commit 3cb7c24

File tree

4 files changed

+446
-0
lines changed

4 files changed

+446
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package org.nameapi.client.services.parser.personnameparser;
2+
3+
import com.optimaize.command4j.CommandExecutor;
4+
import com.optimaize.command4j.Mode;
5+
import org.nameapi.client.lib.NameApiRemoteExecutors;
6+
import org.nameapi.client.services.AbstractTest;
7+
import org.nameapi.client.services.FunctionalTestsNameApiModeFactory;
8+
import org.nameapi.ontology5.input.entities.person.NaturalInputPerson;
9+
import org.nameapi.ontology5.input.entities.person.NaturalInputPersonBuilder;
10+
import org.nameapi.ontology5.input.entities.person.gender.ComputedPersonGender;
11+
import org.nameapi.ontology5.input.entities.person.name.builder.WesternInputPersonNameBuilder;
12+
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
13+
import org.nameapi.ontology5.output.entities.person.name.TermType;
14+
import org.nameapi.ontology5.services.parser.personnameparser.ParsedPerson;
15+
import org.nameapi.ontology5.services.parser.personnameparser.PersonNameParserResult;
16+
import org.testng.annotations.DataProvider;
17+
import org.testng.annotations.Test;
18+
19+
import static org.testng.Assert.assertEquals;
20+
21+
/**
22+
* @author Nicole Torres
23+
*/
24+
public class CY_PersonNameParserCommandTest extends AbstractTest {
25+
26+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
27+
28+
@Test(dataProvider = "test_CY_1")
29+
public void test_CY_1(NaturalInputPerson inputPerson) throws Exception {
30+
PersonNameParserCommand command = new PersonNameParserCommand();
31+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
32+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
33+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
34+
OutputPersonName personName = parsedPerson.getOutputPersonName();
35+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Andreas");
36+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Georgiou");
37+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
38+
}
39+
@DataProvider
40+
protected Object[][] test_CY_1() {
41+
return new Object[][]{
42+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Andreas Georgiou").build()).build()},
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Andreas").surname("Georgiou").build()).build()}
44+
};
45+
}
46+
47+
@Test(dataProvider = "test_CY_2")
48+
public void test_CY_2(NaturalInputPerson inputPerson) throws Exception {
49+
PersonNameParserCommand command = new PersonNameParserCommand();
50+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
51+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
52+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
53+
OutputPersonName personName = parsedPerson.getOutputPersonName();
54+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Ανδρεας");
55+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Γεωργιου");
56+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
57+
}
58+
@DataProvider
59+
protected Object[][] test_CY_2() {
60+
return new Object[][]{
61+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Ανδρεας Γεωργιου").build()).build()},
62+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Ανδρεας").surname("Γεωργιου").build()).build()}
63+
};
64+
}
65+
66+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package org.nameapi.client.services.parser.personnameparser;
2+
3+
import com.optimaize.command4j.CommandExecutor;
4+
import com.optimaize.command4j.Mode;
5+
import org.nameapi.client.lib.NameApiRemoteExecutors;
6+
import org.nameapi.client.services.AbstractTest;
7+
import org.nameapi.client.services.FunctionalTestsNameApiModeFactory;
8+
import org.nameapi.ontology5.input.entities.person.NaturalInputPerson;
9+
import org.nameapi.ontology5.input.entities.person.NaturalInputPersonBuilder;
10+
import org.nameapi.ontology5.input.entities.person.gender.ComputedPersonGender;
11+
import org.nameapi.ontology5.input.entities.person.name.builder.WesternInputPersonNameBuilder;
12+
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
13+
import org.nameapi.ontology5.output.entities.person.name.TermType;
14+
import org.nameapi.ontology5.services.parser.personnameparser.ParsedPerson;
15+
import org.nameapi.ontology5.services.parser.personnameparser.PersonNameParserResult;
16+
import org.testng.annotations.DataProvider;
17+
import org.testng.annotations.Test;
18+
19+
import static org.testng.Assert.assertEquals;
20+
21+
/**
22+
* @author Nicole Torres
23+
*/
24+
public class CZ_PersonNameParserCommandTest extends AbstractTest {
25+
26+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
27+
28+
@Test(dataProvider = "test_CZ_1")
29+
public void test_CZ_1(NaturalInputPerson inputPerson) throws Exception {
30+
PersonNameParserCommand command = new PersonNameParserCommand();
31+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
32+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
33+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
34+
OutputPersonName personName = parsedPerson.getOutputPersonName();
35+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Kristýna");
36+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Nováková");
37+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
38+
}
39+
@DataProvider
40+
protected Object[][] test_CZ_1() {
41+
return new Object[][]{
42+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Kristýna Nováková").build()).build()},
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Kristýna").surname("Nováková").build()).build()}
44+
};
45+
}
46+
47+
@Test(dataProvider = "test_CZ_2")
48+
public void test_CZ_2(NaturalInputPerson inputPerson) throws Exception {
49+
PersonNameParserCommand command = new PersonNameParserCommand();
50+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
51+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
52+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
53+
OutputPersonName personName = parsedPerson.getOutputPersonName();
54+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Kristýna");
55+
assertEquals(personName.getFirst(TermType.NICKNAME).get().getString(), "Týna");
56+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Novákova");
57+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
58+
}
59+
@DataProvider
60+
protected Object[][] test_CZ_2() {
61+
return new Object[][]{
62+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Kristýna \"Týna\" Novákova").build()).build()},
63+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Kristýna \"Týna\"").surname("Novákova").build()).build()}
64+
};
65+
}
66+
67+
}
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
package org.nameapi.client.services.parser.personnameparser;
2+
3+
import com.optimaize.command4j.CommandExecutor;
4+
import com.optimaize.command4j.Mode;
5+
import org.nameapi.client.lib.NameApiRemoteExecutors;
6+
import org.nameapi.client.services.AbstractTest;
7+
import org.nameapi.client.services.FunctionalTestsNameApiModeFactory;
8+
import org.nameapi.ontology5.input.entities.person.NaturalInputPerson;
9+
import org.nameapi.ontology5.input.entities.person.NaturalInputPersonBuilder;
10+
import org.nameapi.ontology5.input.entities.person.gender.ComputedPersonGender;
11+
import org.nameapi.ontology5.input.entities.person.name.builder.WesternInputPersonNameBuilder;
12+
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
13+
import org.nameapi.ontology5.output.entities.person.name.Term;
14+
import org.nameapi.ontology5.output.entities.person.name.TermType;
15+
import org.nameapi.ontology5.services.parser.personnameparser.ParsedPerson;
16+
import org.nameapi.ontology5.services.parser.personnameparser.PersonNameParserResult;
17+
import org.testng.annotations.DataProvider;
18+
import org.testng.annotations.Test;
19+
20+
import java.util.List;
21+
22+
import static org.testng.Assert.assertEquals;
23+
24+
/**
25+
* @author Nicole Torres
26+
*/
27+
public class DE_PersonNameParserCommandTest extends AbstractTest {
28+
29+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
30+
31+
@Test(dataProvider = "test_DE_1")
32+
public void test_DE_1(NaturalInputPerson inputPerson) throws Exception {
33+
PersonNameParserCommand command = new PersonNameParserCommand();
34+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
35+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
36+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
37+
OutputPersonName personName = parsedPerson.getOutputPersonName();
38+
List<Term> titles = personName.getAll(TermType.TITLE);
39+
assertEquals(titles.size(), 3);
40+
assertEquals(titles.get(0).getString(), "Prof.");
41+
assertEquals(titles.get(1).getString(), "Dr.");
42+
assertEquals(titles.get(2).getString(), "Dr.");
43+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Wolfgang");
44+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Berger");
45+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
46+
}
47+
@DataProvider
48+
protected Object[][] test_DE_1() {
49+
return new Object[][]{
50+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Prof. Dr. Dr. Wolfgang Berger").build()).build()},
51+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Prof. Dr. Dr. Wolfgang").surname("Berger").build()).build()}
52+
};
53+
}
54+
55+
@Test(dataProvider = "test_DE_2")
56+
public void test_DE_2(NaturalInputPerson inputPerson) throws Exception {
57+
PersonNameParserCommand command = new PersonNameParserCommand();
58+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
59+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
60+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
61+
62+
/* when there are MULTIPLE people the service returns a list of ParsedPerson */
63+
ParsedPerson firstPerson = parsedPerson.getPeople().get(0);
64+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Hans");
65+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.GIVENNAMEINITIAL).get().getString(), "U.");
66+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Burger");
67+
assertEquals(firstPerson.getGender().getGender(), ComputedPersonGender.MALE);
68+
69+
ParsedPerson secondPerson = parsedPerson.getPeople().get(1);
70+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Barbara");
71+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Spinner");
72+
assertEquals(secondPerson.getOutputPersonName().getSecond(TermType.SURNAME).get().getString(), "Burger");
73+
assertEquals(secondPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
74+
}
75+
@DataProvider
76+
protected Object[][] test_DE_2() {
77+
return new Object[][]{
78+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Burger Hans U. u. Spinner-Burger Barbara").build()).build()},
79+
};
80+
}
81+
82+
@Test(dataProvider = "test_DE_3")
83+
public void test_DE_3(NaturalInputPerson inputPerson) throws Exception {
84+
PersonNameParserCommand command = new PersonNameParserCommand();
85+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
86+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
87+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
88+
OutputPersonName personName = parsedPerson.getOutputPersonName();
89+
assertEquals(personName.getFirst(TermType.SALUTATION).get().getString(), "Frau");
90+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Angela");
91+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Merkel");
92+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
93+
}
94+
@DataProvider
95+
protected Object[][] test_DE_3() {
96+
return new Object[][]{
97+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Frau Angela Merkel").build()).build()},
98+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Frau Angela").surname("Merkel").build()).build()}
99+
};
100+
}
101+
102+
@Test(dataProvider = "test_DE_4")
103+
public void test_DE_4(NaturalInputPerson inputPerson) throws Exception {
104+
PersonNameParserCommand command = new PersonNameParserCommand();
105+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
106+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
107+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
108+
OutputPersonName personName = parsedPerson.getOutputPersonName();
109+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Rainer");
110+
assertEquals(personName.getSecond(TermType.GIVENNAME).get().getString(), "Maria");
111+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Rilke");
112+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
113+
}
114+
@DataProvider
115+
protected Object[][] test_DE_4() {
116+
return new Object[][]{
117+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Rainer Maria Rilke").build()).build()},
118+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Rainer Maria").surname("Rilke").build()).build()}
119+
};
120+
}
121+
122+
@Test(dataProvider = "test_DE_5")
123+
public void test_DE_5(NaturalInputPerson inputPerson) throws Exception {
124+
PersonNameParserCommand command = new PersonNameParserCommand();
125+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
126+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
127+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
128+
OutputPersonName personName = parsedPerson.getOutputPersonName();
129+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Anton");
130+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Mosimann");
131+
assertEquals(personName.getFirst(TermType.PROFESSION).get().getString(), "Malermeister");
132+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
133+
}
134+
@DataProvider
135+
protected Object[][] test_DE_5() {
136+
return new Object[][]{
137+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Anton Mosimann, Malermeister").build()).build()},
138+
};
139+
}
140+
141+
@Test(dataProvider = "test_DE_6")
142+
public void test_DE_6(NaturalInputPerson inputPerson) throws Exception {
143+
PersonNameParserCommand command = new PersonNameParserCommand();
144+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
145+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
146+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
147+
148+
/* when there are MULTIPLE people the service returns a list of ParsedPerson */
149+
ParsedPerson firstPerson = parsedPerson.getPeople().get(0);
150+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Peter");
151+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Meyer");
152+
assertEquals(firstPerson.getGender().getGender(), ComputedPersonGender.MALE);
153+
154+
ParsedPerson secondPerson = parsedPerson.getPeople().get(1);
155+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Daniela");
156+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Meyer");
157+
assertEquals(secondPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
158+
}
159+
@DataProvider
160+
protected Object[][] test_DE_6() {
161+
return new Object[][]{
162+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Peter und Daniela Meyer").build()).build()},
163+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Peter und Daniela").surname("Meyer").build()).build()}
164+
};
165+
}
166+
167+
}

0 commit comments

Comments
 (0)