Skip to content

Commit

Permalink
add estonian people names (#324)
Browse files Browse the repository at this point in the history
  • Loading branch information
cieslarmichal authored Nov 23, 2023
1 parent ff061eb commit 4486fba
Show file tree
Hide file tree
Showing 6 changed files with 179 additions and 4 deletions.
4 changes: 3 additions & 1 deletion include/faker-cxx/types/Country.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ enum class Country
Latvia,
Ireland,
Belarus,
Estonia,
};

const std::vector<Country> countries{
Expand All @@ -60,7 +61,7 @@ const std::vector<Country> countries{
Country::Slovenia, Country::Austria, Country::Switzerland, Country::Belgium, Country::Nederlands,
Country::China, Country::Korea, Country::Canada, Country::Mexico, Country::Argentina,
Country::Australia, Country::Serbia, Country::Macedonia, Country::Latvia, Country::Ireland,
Country::Belarus,
Country::Belarus, Country::Estonia,
};

inline std::string toString(Country country)
Expand Down Expand Up @@ -107,6 +108,7 @@ inline std::string toString(Country country)
{Country::Latvia, "Latvia"},
{Country::Ireland, "Ireland"},
{Country::Belarus, "Belarus"},
{Country::Estonia, "Estonia"},
};

return countryToStringMapping.at(country);
Expand Down
3 changes: 2 additions & 1 deletion src/modules/person/Person.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "data/czech/CzechPeopleNames.h"
#include "data/denmark/DanishPeopleNames.h"
#include "data/england/EnglishPeopleNames.h"
#include "data/estonia/EstonianPeopleNames.h"
#include "data/finland/FinnishPeopleNames.h"
#include "data/france/FrenchPeopleNames.h"
#include "data/Gender.h"
Expand Down Expand Up @@ -82,7 +83,7 @@ const std::map<Country, PeopleNames> countryToPeopleNamesMapping{
{Country::Argentina, argentinianPeopleNames}, {Country::Australia, australianPeopleNames},
{Country::Serbia, serbianPeopleNames}, {Country::Macedonia, macedonianPeopleNames},
{Country::Latvia, latvianPeopleNames}, {Country::Ireland, irishPeopleNames},
{Country::Belarus, belarusianPeopleNames},
{Country::Belarus, belarusianPeopleNames}, {Country::Estonia, estonianPeopleNames},
};

std::string middleNameForCountry(Country country, std::optional<Sex> sex);
Expand Down
5 changes: 3 additions & 2 deletions src/modules/person/PersonTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "data/czech/CzechPeopleNames.h"
#include "data/denmark/DanishPeopleNames.h"
#include "data/england/EnglishPeopleNames.h"
#include "data/estonia/EstonianPeopleNames.h"
#include "data/finland/FinnishPeopleNames.h"
#include "data/france/FrenchPeopleNames.h"
#include "data/Gender.h"
Expand Down Expand Up @@ -82,7 +83,7 @@ const std::map<Country, PeopleNames> countryToPeopleNamesMapping{
{Country::Argentina, argentinianPeopleNames}, {Country::Australia, australianPeopleNames},
{Country::Serbia, serbianPeopleNames}, {Country::Macedonia, macedonianPeopleNames},
{Country::Latvia, latvianPeopleNames}, {Country::Ireland, irishPeopleNames},
{Country::Belarus, belarusianPeopleNames},
{Country::Belarus, belarusianPeopleNames}, {Country::Estonia, estonianPeopleNames},
};

const std::map<Country, std::string> generatedTestName{
Expand All @@ -106,7 +107,7 @@ const std::map<Country, std::string> generatedTestName{
{Country::Argentina, "shouldGenerateArgentinianName"}, {Country::Australia, "shouldGenerateAustralianName"},
{Country::Serbia, "shouldGenerateSerbianName"}, {Country::Macedonia, "shouldGenerateMacedonianName"},
{Country::Latvia, "shouldGenerateLatvianName"}, {Country::Ireland, "shouldGenerateIrishName"},
{Country::Belarus, "shouldGenerateBelarusianName"},
{Country::Belarus, "shouldGenerateBelarusianName"}, {Country::Estonia, "shouldGenerateEstonianName"},
};
}

Expand Down
101 changes: 101 additions & 0 deletions src/modules/person/data/estonia/EstonianFirstNames.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#pragma once

#include <string>
#include <vector>

namespace faker
{
const std::vector<std::string> estonianMalesFirstNames = {
"Aleksandr", "Andres", "Sergei", "Vladimir", "Andrei", "Igor", "Martin", "Marko",
"Ene", "Dmitri", "Aleksei", "Oleg", "Viktor", "Juri", "Roman", "Marek",
"Raul", "Malle", "Nikolai", "Heli", "Aleksander", "Alexander", "Sven", "Terje",
"Pavel", "Eduard", "Kai", "Sergey", "Anton", "Artur", "Vadim", "Maksim",
"Timo", "Ivar", "Allan", "Erik", "Karl", "Anatoli", "Vitali", "Ivo",
"Jan", "Silver", "Hannes", "Robert", "Andrey", "Konstantin", "Rainer", "Harri",
"Ivan", "Sander", "Stanislav", "Paul", "Oliver", "Mark", "Hans", "Peter",
"Lars", "Matti", "Alexey", "Gunnar", "Dmitry", "Deniss", "Ilja", "Leonid",
"Vladislav", "Kirill", "Mikhail", "Ruslan", "Andre", "Henri", "Gert", "Roland",
"Alex", "Ragnar", "Imre", "Vassili", "Arne", "Arno", "Boris", "Michael",
"Victor", "Daniel", "Rasmus", "David", "Valentin", "Mario", "Yury", "John",
"Joel", "Edgar", "Markus", "Harry", "Thomas", "Einar", "Leo", "Albert",
"Johannes", "Evgeny", "Per", "Hendrik", "Nikolay", "Ari", "Georg", "Anders",
"Egon", "Richard", "Alvar", "Georgi", "Henry", "Oleksandr", "Guido", "Arnold",
"Ervin", "Henrik", "Merlin", "Valter", "Raimond", "Karel", "Elmar", "Maxim",
"Aleksandrs", "Carl", "Kristian", "Fred", "Johan", "Nils", "Sergejs", "Kevin",
"Daniil", "Christian", "Anatoly", "Aleks", "Tom", "Magnus", "Oskar", "German",
"Andris", "Grigori", "Olav", "Tomas", "Andrew", "Marco", "Ilya", "Sami",
"Alan", "Andrejs", "Rudolf", "Stefan", "Marti", "Bruno", "Rolf", "Artem",
"Erich", "Vitaly", "Elmo", "Valeriy", "Vyacheslav", "Udo", "Volodymyr", "Steven",
"Heiko", "Gennady", "Ken", "Harald", "Jens", "Arkadi", "Ulf", "Mauri",
"Ralf", "Danel", "August", "Lennart", "Hugo", "James", "Otto", "Simo",
"Andi", "Aldo", "Jonas", "Ove", "Mikael", "Marius", "Aksel", "Mattias",
"Helmut", "Ali", "Roberto", "Timur", "Feliks", "Lasse", "Holger", "Stig",
"Lev", "Ronald", "Leif", "Vlad", "Helge", "Marin", "Vasily", "Dmytro",
"Roger", "Chris", "Klaus", "Kjell", "Igors", "Stepan", "Gustav", "Alexandre",
"Rune", "William", "Mihail", "Andrii", "Armin", "Juris", "Max", "Aleksey",
"Tony", "Vladimirs", "Alfred", "Eric", "Dmitrijs", "Edward", "Aleksejs", "Kris",
"Alexandr", "Edvin", "Gleb", "Simon", "Dmitriy", "Kenneth", "Jakob", "Mykola",
"Petr", "Patrick", "Artyom", "Gabriel", "Aliaksandr", "Olegs", "Ander", "Dimitri",
"Elvis", "Andro", "Viktors", "Siarhei", "Pauli", "Ole", "Niklas", "Stephen",
"Keith", "Arthur", "Mindaugas", "Olaf", "Bogdan", "Christopher", "Frank", "Yuriy",
"Sergii", "Mirko", "Remo", "Paolo", "Andriy", "Marcus", "Jurijs", "Matthias",
"Heinrich", "Ernst", "Marat", "Bert", "Egor", "Morten", "Niko", "Edvard",
"Fredrik", "Iurii", "Darius", "Georgy", "Viacheslav", "Antonio", "Evgeniy", "Filipp",
"Jon", "Andrius", "Eugen", "Jaroslav", "Edgars", "George", "Algis", "Kurt",
"Emil", "Niels", "Norman", "Ian", "Andry", "Tommy", "Rustam", "Pavlo",
"Valerii", "Evgeni", "Jurgen", "Sebastian", "Herbert", "Pierre", "Oleksii", "Marc",
"Samuel", "Adam", "Patrik", "Aron", "Hakan", "Serguei", "Petro", "Franz",
"Vasyl", "Sergej", "Benjamin", "Brian", "Joakim", "Vitalii", "Benno", "Carlos",
"Sergiy", "Vitaliy", "Jack", "Knut", "Rodion", "Enrico", "Grigory", "Herman",
"Philip", "Jose", "Tim", "Omar", "Armand", "Vilmar", "Rafael", "Adrian",
"Renat", "Anatolii", "Dzmitry", "Danil", "Eldar", "Gerhard", "Fedor", "Raoul",
"Sergo", "Anthony", "Jesper", "Matthew", "Francesco", "Gary",
};

const std::vector<std::string> estonianFemalesFirstNames = {
"Olga", "Irina", "Jelena", "Svetlana", "Tatjana", "Katrin", "Natalja", "Anna",
"Anne", "Marina", "Galina", "Maria", "Julia", "Anneli", "Valentina", "Marika",
"Karin", "Natalia", "Kristina", "Eve", "Helen", "Merle", "Margit", "Mati",
"Annika", "Jana", "Kaja", "Kristel", "Jekaterina", "Elena", "Mari", "Valeri",
"Diana", "Viktoria", "Krista", "Ingrid", "Lea", "Monika", "Larissa", "Oksana",
"Maris", "Evelin", "Maire", "Helle", "Inna", "Alla", "Inga", "Tamara",
"Signe", "Eva", "Rita", "Linda", "Aili", "Ilona", "Rene", "Tatiana",
"Laura", "Veronika", "Janne", "Kati", "Aleksandra", "Jane", "Aime", "Margarita",
"Helena", "Ruth", "Erika", "Eda", "Denis", "Elina", "Alina", "Heidi",
"Inge", "Kari", "Sigrid", "Anastassia", "Regina", "Agnes", "Maia", "Ester",
"Margo", "Birgit", "Mai", "Sandra", "Ellen", "Karina", "Ekaterina", "Leida",
"Marit", "Angela", "Nele", "Nadezda", "Asta", "Karmen", "Liudmila", "Marianne",
"Nina", "Andreas", "Mirjam", "Grete", "Kristin", "Silvia", "Egle", "Hanna",
"Lidia", "Mika", "Raissa", "Valeria", "Ksenia", "Astrid", "Tea", "Anastasia",
"Lilian", "Nikita", "Antonina", "Yulia", "Anni", "Zinaida", "Evelyn", "Nelli",
"Lilia", "Aimar", "Silva", "Ann", "Darja", "Vera", "Larisa", "Janis",
"Marianna", "Ludmilla", "Saima", "Ella", "Julija", "Andra", "Anita", "Leena",
"Irene", "Elen", "Petri", "Johanna", "Helga", "Margot", "Stella", "Marta",
"Kirsti", "Mariann", "Liana", "Nadezhda", "Vilma", "Arina", "Kaur", "Angelika",
"Marie", "Polina", "Elis", "Lia", "Monica", "Angelina", "Gerda", "Bo",
"Elvira", "Valery", "Yana", "Liubov", "Victoria", "Alice", "Dagmar", "Natalija",
"Rimma", "Olena", "Irena", "Marion", "Ulla", "Thea", "Maila", "Carmen",
"Irma", "Sofia", "Berit", "Ursula", "Kristine", "Oxana", "Kelly", "Lena",
"Tatyana", "Alena", "Viktorija", "Erna", "Dina", "Alexandra", "Natalya", "Leila",
"Karen", "Elsa", "Yuliya", "Katerina", "Iris", "Marja", "Agne", "Renee",
"Alisa", "Helene", "Alevtina", "Hilda", "Nataliya", "Kerstin", "Katja", "Marilin",
"Ira", "Doris", "Kim", "Viktoriya", "Tanja", "Lina", "Paula", "Edith",
"Katrina", "Zhanna", "Iryna", "Christina", "Dan", "Pia", "Eleonora", "Dima",
"Gea", "Elisabeth", "Marian", "Selma", "Andrea", "Ilse", "Ruta", "Albina",
"Sasha", "Ines", "Aina", "Evelina", "Marija", "Marleen", "Ada", "Susanna",
"Tetiana", "Katarina", "Liza", "Aira", "Natali", "Elin", "Inessa", "Lyudmila",
"Ethel", "Vivian", "Ludmila", "Anette", "Karolina", "Evgenia", "Karol", "Marili",
"Iuliia", "Kristen", "Juliana", "Reena", "Britta", "Lilli", "Mariana", "Anastasiya",
"Mariya", "Iveta", "Marita", "Elise", "Lydia", "Emma", "Alma", "Marlen",
"Violetta", "Lily", "Iren", "Raisa", "Nataliia", "Evgeniya", "Elizaveta", "Mia",
"Mary", "Naima", "Lee", "Renata", "Greta", "Daisy", "Varvara", "Raja",
"Yuri", "Iraida", "Ilze", "Robin", "Britt", "Renate", "Daria", "Anzelika",
"Kira", "Karine", "Tetyana", "Anya", "Dana", "Alyona", "Svitlana", "Nadja",
"Livia", "Ina", "Ana", "Katya", "Lisa", "Ksenija", "Janina", "Lada",
"Maryna", "Merlyn", "Lana", "Veronica", "Alissa", "Elga", "Dennis", "Sanna",
"Maren", "Brit", "Laila", "Enna", "Emilia", "Natasha", "Nika", "Inger",
"Olesya", "Rena", "Susanne", "Dasha", "Nora", "Kateryna", "Mae", "Dea",
"Heidy", "Larysa", "Anastasiia", "Joanna", "Anett", "Magda", "Natalie", "Nataly",
"Ida", "Faina", "Roza", "Milana", "Lili", "Amanda",
};
}
54 changes: 54 additions & 0 deletions src/modules/person/data/estonia/EstonianLastNames.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#pragma once

#include <string>
#include <vector>

namespace faker
{
const std::vector<std::string> estonianLastNames = {
"Tamm", "Saar", "Sepp", "Kask", "Mägi", "Kukk", "Rebane", "Koppel",
"Karu", "Ilves", "Lepik", "Oja", "Ivanov", "Kuusk", "Kaasik", "Cuca",
"Luik", "Raudsepp", "Vaher", "Kallas", "Lepp", "Laur", "Pärn", "Kuusik",
"Kivi", "Ots", "Liiv", "Peterson", "Teder", "Mets", "Põder", "Kull",
"Kütt", "Puusepp", "Kangur", "Jakobson", "Rand", "Toom", "Saks", "Smirnov",
"Leppik", "Raud", "Mitt", "Sild", "Sarapuu", "Ivanova", "Mölder", "Roos",
"Tamme", "Allik", "Kõiv", "Paju", "Paas", "Laas", "Pukk", "Miller",
"Palm", "Tomson", "Uibo", "Põld", "Jürgenson", "Kalda", "Lill", "Männik",
"Nõmm", "Johanson", "Orav", "Unt", "Parts", "Lind", "Hunt", "Petrov",
"Arro", "Adamson", "Hein", "Lember", "Rätsep", "Järv", "Nurk", "Tali",
"Pihlak", "Kase", "Aavik", "Kruus", "Valk", "Hansen", "Järve", "Väli",
"Vares", "Aru", "Rohtla", "Kikas", "Sikk", "Mõttus", "Soosaar", "Kuznetsov",
"Vassiljev", "Kolk", "Must", "Sarv", "Martin", "Mänd", "Annus", "Kala",
"Tilk", "Luts", "Varik", "Tomingas", "Raid", "Smirnova", "Pavlov", "Kirsipuu",
"Laine", "Aas", "Anderson", "Lang", "Kaur", "Anton", "Post", "Aus",
"Abel", "Ojala", "Kokk", "Palu", "Schmidt", "Kuus", "Kink", "Gross",
"Popov", "Ott", "Martinson", "Rosenberg", "Roots", "Reimann", "Sokolov", "Allas",
"Toome", "Volkov", "Sander", "Kirs", "Lipp", "Põldma", "Taal", "Hanson",
"Kalmus", "Paal", "Petrova", "Link", "Berg", "Aun", "Simson", "Müürsepp",
"Eller", "Liivak", "Kurg", "Stepanov", "Laan", "Kass", "Trei", "Leis",
"Koit", "Morozov", "Susi", "Raja", "Lumi", "Meier", "Vain", "Lass",
"Kim", "Aasa", "Parve", "Mark", "Lauri", "Kozlov", "Sutt", "Soo",
"Erm", "Lebedev", "Saul", "Holm", "Kuznetsova", "Popova", "Poom", "Soots",
"Andersson", "Jürgens", "Kelder", "Kalm", "Eriksson", "Kont", "Kroon", "Kutsar",
"Pajula", "Kasak", "Salu", "Koger", "Nikitin", "Peets", "Siim", "Johansson",
"Ader", "Savi", "Novikov", "Alas", "Padar", "Muru", "Silm", "Suvi",
"Rosin", "Kuzmin", "Aleksandrov", "Markus", "Zaitsev", "Pihl", "Joost", "Meister",
"Pavlova", "Viik", "Karp", "Remmel", "Orlov", "Piho", "Braun", "Raidma",
"Maksimov", "Bergmann", "Kool", "Laks", "Romanov", "Li", "Filippov", "Antonov",
"Hendrikson", "Talvik", "Laos", "Kruuse", "Reinhold", "Virtanen", "Borissov", "Solovjov",
"Oks", "Malm", "Moor", "Trofimov", "Kovalenko", "Türk", "Tomberg", "Jensen",
"Noor", "Fjodorova", "Kapp", "Paap", "Treier", "Savolainen", "Bondarenko", "Kalle",
"Rist", "Ross", "Stepanova", "Larsson", "Smith", "Paulus", "Orlova", "Sillaots",
"Jaanus", "Vene", "Semjonova", "Vahi", "Pent", "Tisler", "Volkova", "Nilsson",
"Lee", "Roose", "Janson", "Makarov", "Lehtonen", "Kaup", "Lille", "Vill",
"Frolov", "Sisask", "Erik", "Raun", "Karlsson", "Belov", "Loo", "Vinogradov",
"Lehtinen", "Tasa", "Pajo", "Aava", "Klein", "Merila", "Alt", "Evert",
"Pool", "Lukas", "Lääts", "Mere", "Pill", "Vare", "Baranov", "Matt",
"Steinberg", "Reiman", "Bogdanov", "Pulk", "Grünberg", "Press", "Koch", "Soon",
"Mandel", "Jakovleva", "Andersen", "Aleksandrova", "Kaldma", "Sommer", "Vilu", "Mustonen",
"Melnikov", "Jaakson", "Korhonen", "Nieminen", "Borissova", "Rinne", "Makarova", "Otsa",
"Hurt", "Sorokin", "Valdmann", "Kanter", "Kipper", "Tint", "Hint", "Sein",
"Nael", "Bachmann", "Laar", "Suviste", "Raig", "Grigorjeva", "Sergejev", "Klaas",
"Nikitina", "Haas", "Lebedeva", "Margus", "Saag", "Kirt",
};
}
16 changes: 16 additions & 0 deletions src/modules/person/data/estonia/EstonianPeopleNames.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once

#include "../NameFormats.h"
#include "../PeopleNames.h"
#include "EstonianFirstNames.h"
#include "EstonianLastNames.h"

namespace faker
{
const NameFormats estonianPersonNameFormats{{"{firstName} {lastName}", 1}};

const PeopleNames estonianPeopleNames{{estonianMalesFirstNames, {}, estonianLastNames, {}, {}},
{estonianFemalesFirstNames, {}, estonianLastNames, {}, {}},
estonianPersonNameFormats};

}

0 comments on commit 4486fba

Please sign in to comment.