diff --git a/include/faker-cxx/types/Country.h b/include/faker-cxx/types/Country.h index 28056d10c..eabe3bad6 100644 --- a/include/faker-cxx/types/Country.h +++ b/include/faker-cxx/types/Country.h @@ -46,6 +46,7 @@ enum class Country Australia, Serbia, Macedonia, + Latvia, }; const std::vector countries{ @@ -56,7 +57,7 @@ const std::vector countries{ Country::Japan, Country::Portugal, Country::Hungary, Country::Croatia, Country::Greece, 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::Australia, Country::Serbia, Country::Macedonia, Country::Latvia, }; inline std::string toString(Country country) @@ -100,6 +101,7 @@ inline std::string toString(Country country) {Country::Australia, "Australia"}, {Country::Serbia, "Serbia"}, {Country::Macedonia, "Macedonia"}, + {Country::Latvia, "Latvia"}, }; return countryToStringMapping.at(country); diff --git a/src/modules/person/Person.cpp b/src/modules/person/Person.cpp index f94d86d7e..4ff174a7d 100644 --- a/src/modules/person/Person.cpp +++ b/src/modules/person/Person.cpp @@ -29,6 +29,7 @@ #include "data/JobTitles.h" #include "data/korea/KoreanPeopleNames.h" #include "data/Languages.h" +#include "data/latvia/LatvianPeopleNames.h" #include "data/macedonia/MacedonianPeopleNames.h" #include "data/mexico/MexicanPeopleNames.h" #include "data/Nationalities.h" @@ -78,6 +79,7 @@ const std::map countryToPeopleNamesMapping{ {Country::Canada, canadianPeopleNames}, {Country::Mexico, mexicanPeopleNames}, {Country::Argentina, argentinianPeopleNames}, {Country::Australia, australianPeopleNames}, {Country::Serbia, serbianPeopleNames}, {Country::Macedonia, macedonianPeopleNames}, + {Country::Latvia, latvianPeopleNames}, }; std::string middleNameForCountry(Country country, std::optional sex); diff --git a/src/modules/person/PersonTest.cpp b/src/modules/person/PersonTest.cpp index fe3ea1144..a940cc301 100644 --- a/src/modules/person/PersonTest.cpp +++ b/src/modules/person/PersonTest.cpp @@ -28,6 +28,7 @@ #include "data/JobTitles.h" #include "data/korea/KoreanPeopleNames.h" #include "data/Languages.h" +#include "data/latvia/LatvianPeopleNames.h" #include "data/macedonia/MacedonianPeopleNames.h" #include "data/mexico/MexicanPeopleNames.h" #include "data/Nationalities.h" @@ -78,6 +79,7 @@ const std::map countryToPeopleNamesMapping{ {Country::Canada, canadianPeopleNames}, {Country::Mexico, mexicanPeopleNames}, {Country::Argentina, argentinianPeopleNames}, {Country::Australia, australianPeopleNames}, {Country::Serbia, serbianPeopleNames}, {Country::Macedonia, macedonianPeopleNames}, + {Country::Latvia, latvianPeopleNames}, }; const std::map generatedTestName{ @@ -100,6 +102,7 @@ const std::map generatedTestName{ {Country::Canada, "shouldGenerateCanadianName"}, {Country::Mexico, "shouldGenerateMexicanName"}, {Country::Argentina, "shouldGenerateArgentinianName"}, {Country::Australia, "shouldGenerateAustralianName"}, {Country::Serbia, "shouldGenerateSerbianName"}, {Country::Macedonia, "shouldGenerateMacedonianName"}, + {Country::Latvia, "shouldGenerateLatvianName"}, }; } diff --git a/src/modules/person/data/latvia/LatvianFirstNames.h b/src/modules/person/data/latvia/LatvianFirstNames.h new file mode 100644 index 000000000..3cd6535ea --- /dev/null +++ b/src/modules/person/data/latvia/LatvianFirstNames.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector latvianMalesFirstNames = { + "Ainārs", "Alfrēds", "Aloīzs", "Aļģirds", "Aļģis", "Andris", "Andžejs", "Andžs", "Anrijs", + "Anšlavs", "Arkādijs", "Armīns", "Artūrs", "Arvīds", "Ādams", "Ādolfs", "Ārijs", "Āris", + "Boļeslavs", "Broņislavs", "Dāgs", "Dāvids", "Dāvis", "Edgars", "Edvīns", "Eduards", "Edžus", + "Egīls", "Einārs", "Eižens", "Elmārs", "Emīls", "Ermīns", "Ervīns", "Ēriks", "Ēvalds", + "Gunārs", "Ģederts", "Ģirts", "Ilgmārs", "Ilmārs", "Inārs", "Indriķis", "Ingmārs", "Jānis", + "Jāzeps", "Jevgeņijs", "Jēkabs", "Jurģis", "Jūlijs", "Kārlis", "Klāvs", "Konrāds", "Konstantīns", + "Kristiāns", "Krišjānis", "Krišs", "Leonīds", "Marģers", "Matīss", "Mārcis", "Māris", "Mārtiņš", + "Miķelis", "Monvīds", "Niklāvs", "Ojārs", "Oļegs", "Oļģerts", "Pāvils", "Pēteris", "Regnārs", + "Renārs", "Ričards", "Romāns", "Rūdis", "Rūdolfs", "Rūsiņš", "Tālis", "Tālivaldis", "Tālrīts", + "Uģis", "Valdemārs", "Valentīns", "Valērijs", "Vilmārs", "Vitālijs", "Voldemārs", "Zigfrīds", "Zigmārs", + "Žanis", +}; + +const std::vector latvianFemalesFirstNames = { + "Aīda", "Akvelīna", "Albertīne", "Alvīne", "Amālija", "Astrīda", "Aurēlija", "Ārija", "Baņuta", + "Bārbala", "Beāte", "Dagmāra", "Dainuvīte", "Dārta", "Diāna", "Dzirkstīte", "Dzīle", "Edīte", + "Elfrīda", "Elīna", "Elīza", "Elmīra", "Elvīra", "Emīlija", "Ernestīne", "Evelīna", "Ērika", + "Frīda", "Gabriela", "Gudrīte", "Ģertrūde", "Helēna", "Hermīne", "Ināra", "Ingrīda", "Ingūna", + "Irēna", "Īrisa", "Janīna", "Jasmīna", "Jautrīte", "Judīte", "Justīne", "Jūlija", "Jūsma", + "Karīna", "Katrīna", "Klāra", "Kristiāna", "Kristīne", "Lavīze", "Lāsma", "Leonīda", "Leontīne", + "Liāna", "Liliāna", "Lība", "Līga", "Līksma", "Līna", "Līva", "Līvija", "Līze", + "Luīze", "Lūcija", "Malvīne", "Māra", "Mārīte", "Mētra", "Modrīte", "Mudīte", "Olīvija", + "Otīlija", "Patrīcija", "Paulīne", "Pārsla", "Regīna", "Renāte", "Rudīte", "Rūta", "Sabīne", + "Sarmīte", "Saulcerīte", "Skaidrīte", "Spīdola", "Tamāra", "Terēze", "Tīna", "Trīne", "Undīne", + "Valentīna", "Valērija", "Vēsma", "Vijolīte", "Vilhelmīne", "Vizbulīte", "Zeltīte", "Ziedīte", "Zigfrīda", + "Zigrīda", "Zīle", "Žanete", "Žanna", "Ženija", "Žubīte", +}; +} diff --git a/src/modules/person/data/latvia/LatvianLastNames.h b/src/modules/person/data/latvia/LatvianLastNames.h new file mode 100644 index 000000000..56c69caa7 --- /dev/null +++ b/src/modules/person/data/latvia/LatvianLastNames.h @@ -0,0 +1,65 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector latvianMalesLastNames = { + "Aigars", "Alksnis", "Andersons", "Aspers", "Auziņš", "Ābele", "Āboliņš", "Āboltiņš", + "Balodis", "Beļavskis", "Bergmanis", "Bērziņš", "Bērzīts", "Birziņš", "Birznieks", "Bīriņš", + "Blaus", "Blekte", "Breņķis", "Briedis", "Brunkevičs", "Builis", "Bušs", "Caune", + "Cālītis", "Cīrulis", "Čudars", "Danielsons", "Dīriķis", "Dombrovskis", "Dreimanis", "Dzenis", + "Eglītis", "Endziņš", "Fogelis", "Freimanis", "Gailis", "Gailītis", "Gibala", "Graudiņš", + "Gribusts", "Grīnbergs", "Grūbe", "Jansons", "Jēkabsons", "Jukums", "Kalējs", "Kalniņš", + "Karlsons", "Kauliņš", "Kārkliņš", "Kļaviņš", "Kohs", "Koks", "Krancis", "Krastiņš", + "Kraulis", "Krauze", "Krēsliņš", "Krieviņš", "Krievs", "Kronbergs", "Krūmiņš", "Kulmanis", + "Laiviņš", "Landmanis", "Lapiņš", "Lapsiņš", "Lasmanis", "Laubergs", "Lācis", "Legzdiņš", + "Lielmanis", "Liepiņš", "Līcis", "Līdaks", "Ločs", "Lodiņš", "Lūsis", "Matisons", + "Mednis", "Meiers", "Mekšs", "Melderis", "Melngailis", "Mihailovs", "Miķelsons", "Niedra", + "Osis", "Ostrovskis", "Ozers", "Ozoliņš", "Ozols", "Palters", "Pavlovskis", "Pencis", + "Petrovskis", "Pērkons", "Pētersons", "Podziņš", "Polis", "Pretkalniņš", "Priedītis", "Puķītis", + "Putniņš", "Riekstiņš", "Romanovskis", "Rozenbahs", "Rozītis", "Rubenis", "Rudzītis", "Runcis", + "Salmiņš", "Seržants", "Sietnieks", "Siliņš", "Sīlis", "Skudra", "Smuģis", "Sproģis", + "Sprūde", "Strautiņš", "Strautmanis", "Strazdiņš", "Širovs", "Šīrants", "Šmits", "Šteins", + "Tālbergs", "Teicāns", "Tiltiņš", "Tīrelis", "Tučs", "Ūdris", "Valters", "Vasils", + "Vecumnieks", "Veinbergs", "Veiss", "Vilks", "Vilsons", "Viļums", "Vinters", "Vītiņš", + "Vītoliņš", "Vītols", "Vītums", "Vollis", "Zariņš", "Zālītis", "Zeidmanis", "Zeltiņš", + "Ziemelis", "Zībers", "Zunda", "Zvaigzne", "Zvejnieks", "Zvinelis", "Mucenieks", "Dzirkalis", + "Arājs", "Sējējs", "Podnieks", "Ratnieks", "Deģis", "Bondars", "Sondors", "Namiķis", + "Jumiķis", "Muižnieks", "Bajārs", "Ķēniņš", "Ķeizars", "Barons", "Vaivads", "Zviedrs", + "Vācietis", "Lejiņš", "Vanags", "Celms", "Liepa", "Kalns", "Celmiņš", "Lejnieks", + "Bisenieks", "Kurzemnieks", "Saulietis", "Pakalnietis", "Pridāns", "Grodums", "Kalnājs", "Porgants", + "Sukuts", "Meškūns", "Rožkalns", "Mazjānis", "Latkovskis", "Jankovskis", "Šileiko", "Budreiko", + "Ivanovs", "Morozovs", "Logins", "Gasjūns", "Pauļuks", "Sosārs", +}; + +const std::vector latvianFemalesLastNames = { + "Aigare", "Alksne", "Andersone", "Aspere", "Auziņa", "Ābele", "Āboliņa", "Āboltiņa", + "Balode", "Beļavske", "Bergmane", "Bērziņa", "Bērzīte", "Birziņa", "Birzniece", "Bīriņa", + "Blaua", "Blekte", "Breņķe", "Briede", "Brunkeviča", "Buile", "Buša", "Cauna", + "Cālīte", "Cīrule", "Čudara", "Danielsone", "Dīriķe", "Dombrovska", "Dreimane", "Dzene", + "Eglīte", "Endziņa", "Fogele", "Freimane", "Gaile", "Gailīte", "Gibala", "Graudiņa", + "Gribuste", "Grīnberga", "Grūba", "Jansone", "Jēkabsone", "Jukuma", "Kalēja", "Kalniņa", + "Karlsone", "Kauliņa", "Kārkliņa", "Kļaviņa", "Koha", "Koka", "Krance", "Krastiņa", + "Kraule", "Krauze", "Krēsliņa", "Krieviņa", "Krieva", "Kronberga", "Krūmiņa", "Kulmane", + "Laiviņa", "Landmane", "Lapiņa", "Lapsiņa", "Lasmane", "Lauberga", "Lāce", "Legzdiņa", + "Lielmane", "Liepiņa", "Līce", "Līdaka", "Loča", "Lodiņa", "Lūse", "Matisone", + "Medne", "Meiere", "Mekša", "Meldere", "Melngaile", "Mihailova", "Miķelsone", "Niedra", + "Ose", "Ostrovska", "Ozere", "Ozoliņa", "Ozola", "Paltere", "Pavlovska", "Pence", + "Petrovska", "Pērkona", "Pētersone", "Podziņa", "Pole", "Pretkalniņa", "Priedīte", "Puķīte", + "Putniņa", "Riekstiņa", "Romanovska", "Rozenbaha", "Rozīte", "Rubene", "Rudzīte", "Runce", + "Salmiņa", "Seržante", "Sietniece", "Siliņa", "Sīle", "Skudra", "Smuģe", "Sproģe", + "Sprūde", "Strautiņa", "Strautmane", "Strazdiņa", "Širova", "Šīrante", "Šmite", "Šteina", + "Tālberga", "Teicāne", "Tiltiņa", "Tīrele", "Tuča", "Ūdre", "Valtere", "Vasile", + "Vecumniece", "Veinberga", "Veisa", "Vilka", "Vilsone", "Viļuma", "Vintere", "Vītiņa", + "Vītoliņa", "Vītola", "Vītuma", "Volle", "Zariņa", "Zālīte", "Zeidmane", "Zeltiņa", + "Ziemele", "Zībere", "Zunda", "Zvaigzne", "Zvejniece", "Zvinele", "Muceniece", "Dzirkale", + "Arāja", "Sējēja", "Podniece", "Ratniece", "Deģe", "Bondare", "Sondore", "Namiķe", + "Jumiķe", "Muižniece", "Bajāre", "Ķēniņa", "Ķeizare", "Barone", "Vaivade", "Zviedre", + "Vāciete", "Lejiņa", "Vanaga", "Celma", "Liepa", "Kalna", "Celmiņa", "Lejniece", + "Biseniece", "Kurzemniece", "Sauliete", "Pakalniete", "Pridāne", "Groduma", "Kalnāja", "Porgante", + "Sukute", "Meškūna", "Rožkalne", "Mazjāne", "Latkovska", "Jankovska", "Šileiko", "Budreiko", + "Ivanova", "Morozova", "Logina", "Gasjūne", "Pauļuka", "Sosāre", "Meškūne", +}; +} diff --git a/src/modules/person/data/latvia/LatvianPeopleNames.h b/src/modules/person/data/latvia/LatvianPeopleNames.h new file mode 100644 index 000000000..e35ac35f6 --- /dev/null +++ b/src/modules/person/data/latvia/LatvianPeopleNames.h @@ -0,0 +1,18 @@ +#pragma once + +#include "../NameFormats.h" +#include "../PeopleNames.h" +#include "LatvianFirstNames.h" +#include "LatvianLastNames.h" +#include "LatvianPrefixes.h" +#include "LatvianSuffixes.h" + +namespace faker +{ +const NameFormats latvianPersonNameFormats{ + {{"{firstName} {lastName}", 8}, {"{prefix} {firstName} {lastName}", 1}, {"{firstName} {lastName} {suffix}", 1}}}; + +const PeopleNames latvianPeopleNames{{latvianMalesFirstNames, {}, latvianMalesLastNames, latvianPrefixes, latvianSuffixes}, + {latvianFemalesFirstNames, {}, latvianFemalesLastNames, latvianPrefixes, latvianSuffixes}, + latvianPersonNameFormats}; +} diff --git a/src/modules/person/data/latvia/LatvianPrefixes.h b/src/modules/person/data/latvia/LatvianPrefixes.h new file mode 100644 index 000000000..a99c508aa --- /dev/null +++ b/src/modules/person/data/latvia/LatvianPrefixes.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector latvianPrefixes{"Prof.", "Dr.", "Biedrs"}; +} diff --git a/src/modules/person/data/latvia/LatvianSuffixes.h b/src/modules/person/data/latvia/LatvianSuffixes.h new file mode 100644 index 000000000..a9c2743ca --- /dev/null +++ b/src/modules/person/data/latvia/LatvianSuffixes.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector latvianSuffixes{"k-dze", "kundze"}; +}