Skip to content

Commit 2ea72a5

Browse files
committed
Added 16 NameParser tests by country.
1 parent 022983a commit 2ea72a5

16 files changed

+1012
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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 AE_PersonNameParserCommandTest extends AbstractTest {
25+
26+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
27+
28+
@Test(dataProvider = "test_AE_1")
29+
public void test_AE_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("Hassan", personName.getFirst(TermType.GIVENNAME).get().getString());
36+
assertEquals("Abdul-Aziz", personName.getSecond(TermType.GIVENNAME).get().getString());
37+
assertEquals("Al-Masri", personName.getFirst(TermType.SURNAME).get().getString());
38+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
39+
}
40+
@DataProvider
41+
protected Object[][] test_AE_1() {
42+
return new Object[][]{
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Hassan Abdul-Aziz Al-Masri").build()).build()},
44+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Hassan Abdul-Aziz").surname("Al-Masri").build()).build()}
45+
};
46+
}
47+
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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 AF_PersonNameParserCommandTest extends AbstractTest {
25+
26+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
27+
28+
@Test(dataProvider = "test_AF_1")
29+
public void test_AF_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(), "محمد");
36+
assertEquals(personName.getSecond(TermType.GIVENNAME).get().getString(), "اسحاق");
37+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "نادرى");
38+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
39+
}
40+
@DataProvider
41+
protected Object[][] test_AF_1() {
42+
return new Object[][]{
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("محمد اسحاق نادرى").build()).build()},
44+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("محمد اسحاق").surname("نادرى").build()).build()}
45+
};
46+
}
47+
48+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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.name.builder.WesternInputPersonNameBuilder;
11+
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
12+
import org.nameapi.ontology5.output.entities.person.name.TermType;
13+
import org.nameapi.ontology5.services.parser.personnameparser.ParsedPerson;
14+
import org.nameapi.ontology5.services.parser.personnameparser.PersonNameParserResult;
15+
import org.testng.annotations.DataProvider;
16+
import org.testng.annotations.Test;
17+
18+
import static org.testng.Assert.assertEquals;
19+
20+
/**
21+
* @author Nicole Torres
22+
*/
23+
public class AL_PersonNameParserCommandTest extends AbstractTest {
24+
25+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
26+
27+
@Test(dataProvider = "test_AL_1")
28+
public void test_AL_1(NaturalInputPerson inputPerson) throws Exception {
29+
PersonNameParserCommand command = new PersonNameParserCommand();
30+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
31+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
32+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
33+
OutputPersonName personName = parsedPerson.getOutputPersonName();
34+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Altin");
35+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Hoxha");
36+
}
37+
@DataProvider
38+
protected Object[][] test_AL_1() {
39+
return new Object[][]{
40+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Altin Hoxha").build()).build()},
41+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Altin").surname("Hoxha").build()).build()}
42+
};
43+
}
44+
45+
}
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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.PersonType;
13+
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
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 static org.testng.Assert.assertEquals;
21+
22+
/**
23+
* @author Nicole Torres
24+
*/
25+
public class AM_PersonNameParserCommandTest extends AbstractTest {
26+
27+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
28+
29+
@Test(dataProvider = "test_AM_1")
30+
public void test_AM_1(NaturalInputPerson inputPerson) throws Exception {
31+
PersonNameParserCommand command = new PersonNameParserCommand();
32+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
33+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
34+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
35+
OutputPersonName personName = parsedPerson.getOutputPersonName();
36+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Anahit");
37+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Hovhannisyan");
38+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
39+
}
40+
@DataProvider
41+
protected Object[][] test_AM_1() {
42+
return new Object[][]{
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Anahit Hovhannisyan").build()).build()},
44+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Anahit").surname("Hovhannisyan").build()).build()}
45+
};
46+
}
47+
48+
@Test(dataProvider = "test_AM_2")
49+
public void test_AM_2(NaturalInputPerson inputPerson) throws Exception {
50+
PersonNameParserCommand command = new PersonNameParserCommand();
51+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
52+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
53+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
54+
assertEquals(parsedPerson.getPersonType(), PersonType.MULTIPLE);
55+
56+
/* when there are MULTIPLE people the service returns a list of ParsedPerson */
57+
ParsedPerson firstPerson = parsedPerson.getPeople().get(0);
58+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Anahit");
59+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Hovhannisyan");
60+
assertEquals(firstPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
61+
62+
ParsedPerson secondPerson = parsedPerson.getPeople().get(1);
63+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Narek");
64+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Hovhannisyan");
65+
assertEquals(secondPerson.getGender().getGender(), ComputedPersonGender.MALE);
66+
}
67+
@DataProvider
68+
protected Object[][] test_AM_2() {
69+
return new Object[][]{
70+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Anahit isk Narek Hovhannisyan").build()).build()},
71+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Anahit isk Narek").surname("Hovhannisyan").build()).build()}
72+
};
73+
}
74+
75+
@Test(dataProvider = "test_AM_3")
76+
public void test_AM_3(NaturalInputPerson inputPerson) throws Exception {
77+
PersonNameParserCommand command = new PersonNameParserCommand();
78+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
79+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
80+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
81+
OutputPersonName personName = parsedPerson.getOutputPersonName();
82+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Անահիտ");
83+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Հովհաննիսյան");
84+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
85+
}
86+
@DataProvider
87+
protected Object[][] test_AM_3() {
88+
return new Object[][]{
89+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Անահիտ Հովհաննիսյան").build()).build()},
90+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Անահիտ").surname("Հովհաննիսյան").build()).build()}
91+
};
92+
}
93+
94+
@Test(dataProvider = "test_AM_4")
95+
public void test_AM_4(NaturalInputPerson inputPerson) throws Exception {
96+
PersonNameParserCommand command = new PersonNameParserCommand();
97+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
98+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
99+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
100+
assertEquals(parsedPerson.getPersonType(), PersonType.MULTIPLE);
101+
102+
/* when there are MULTIPLE people the service returns a list of ParsedPerson */
103+
ParsedPerson firstPerson = parsedPerson.getPeople().get(0);
104+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Անահիտ");
105+
assertEquals(firstPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Հովհաննիսյան");
106+
assertEquals(firstPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
107+
108+
ParsedPerson secondPerson = parsedPerson.getPeople().get(1);
109+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.GIVENNAME).get().getString(), "Նարեկ");
110+
assertEquals(secondPerson.getOutputPersonName().getFirst(TermType.SURNAME).get().getString(), "Հովհաննիսյան");
111+
assertEquals(secondPerson.getGender().getGender(), ComputedPersonGender.MALE);
112+
}
113+
@DataProvider
114+
protected Object[][] test_AM_4() {
115+
return new Object[][]{
116+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Անահիտ իսկ Նարեկ Հովհաննիսյան").build()).build()},
117+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Անահիտ իսկ Նարեկ").surname("Հովհաննիսյան").build()).build()}
118+
};
119+
}
120+
121+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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 AT_PersonNameParserCommandTest extends AbstractTest {
25+
26+
private final CommandExecutor executor = NameApiRemoteExecutors.get();
27+
28+
@Test(dataProvider = "test_AT_1")
29+
public void test_AT_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.getSecond(TermType.GIVENNAME).get().getString(), "Nikolaus");
37+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Lauda");
38+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
39+
}
40+
@DataProvider
41+
protected Object[][] test_AT_1() {
42+
return new Object[][]{
43+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Andreas Nikolaus Lauda").build()).build()},
44+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Andreas Nikolaus").surname("Lauda").build()).build()}
45+
};
46+
}
47+
48+
@Test(dataProvider = "test_AT_2")
49+
public void test_AT_2(NaturalInputPerson inputPerson) throws Exception {
50+
PersonNameParserCommand command = new PersonNameParserCommand();
51+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
52+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
53+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
54+
OutputPersonName personName = parsedPerson.getOutputPersonName();
55+
assertEquals(personName.getFirst(TermType.GIVENNAME).get().getString(), "Andreas");
56+
assertEquals(personName.getSecond(TermType.GIVENNAME).get().getString(), "Nikolaus");
57+
assertEquals(personName.getFirst(TermType.NICKNAME).get().getString(), "Klaus");
58+
assertEquals(personName.getFirst(TermType.SURNAME).get().getString(), "Lauda");
59+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
60+
}
61+
@DataProvider
62+
protected Object[][] test_AT_2() {
63+
return new Object[][]{
64+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Andreas Nikolaus \"Klaus\" Lauda").build()).build()},
65+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Andreas Nikolaus \"Klaus\"").surname("Lauda").build()).build()}
66+
};
67+
}
68+
69+
}

0 commit comments

Comments
 (0)