# person ---------------------------
person_et_EE = R6Class(
"person_et_EE",
inherit = person_init,
cloneable = FALSE,
private = list(
# https://en.wikipedia.org/wiki/Demographics_of_Estonia#Ethnic_groups
# Main population groups in Estonia are Estonians and ethnic Russians:
# About 70% of the population are Estonians and about 25% are Russians
formats = list(
c('{first_name_est} {last_name_est}', 0.7),
c('{first_name_rus} {last_name_rus}', 0.3)),
formats_male = list(
c('{first_name_male_est} {last_name_est}', 0.7),
c('{first_name_male_rus} {last_name_rus}', 0.3)),
formats_female = list(
c('{first_name_female_est} {last_name_est}', 0.7),
c('{first_name_female_rus} {last_name_rus}', 0.3)
),
prefixes_neutral = c('doktor', 'dr', 'prof'),
prefixes_male = c('h\u00e4rra', 'hr', 'doktor', 'dr', 'prof'),
prefixes_female = c('proua', 'pr', 'doktor', 'dr', 'prof'),
prefixes = c(
'doktor', 'dr', 'prof',
'h\u00e4rra', 'hr', 'proua', 'pr'
),
suffixes = c('PhD', 'MSc', 'BSc'),
first_names_male_est = c(
'Aivar', 'Aleksander', 'Alexander', 'Andres',
'Andrus', 'Ants', 'Indrek', 'Jaan', 'Jaanus',
'J\u00fcri', 'Kristjan', 'Marek', 'Margus', 'Marko',
'Martin', 'Mati', 'Meelis', 'Mihkel', 'Peeter',
'Priit', 'Raivo', 'Rein', 'Sander', 'Siim', 'Tarmo',
'Tiit', 'Toomas', 'T\u00f5nu', 'Urmas', 'Vello'
),
first_names_female_est = c(
'Aino', 'Anna', 'Anne', 'Anneli', 'Anu', 'Diana',
'Ene', 'Eve', 'Kadri', 'Katrin', 'Kristi',
'Kristiina', 'Kristina', 'Laura', 'Linda', 'Maie',
'Malle', 'Mare', 'Maria', 'Marika', 'Merike',
'Niina', 'Piret', 'Reet', 'Riina', 'Sirje',
'Tiina', 'Tiiu', 'Triin', '\u00dclle'
),
first_names_est = c(
'Aivar', 'Aleksander', 'Alexander', 'Andres',
'Andrus', 'Ants', 'Indrek', 'Jaan', 'Jaanus',
'J\u00fcri', 'Kristjan', 'Marek', 'Margus', 'Marko',
'Martin', 'Mati', 'Meelis', 'Mihkel', 'Peeter',
'Priit', 'Raivo', 'Rein', 'Sander', 'Siim', 'Tarmo',
'Tiit', 'Toomas', 'T\u00f5nu', 'Urmas', 'Vello',
'Aino', 'Anna', 'Anne', 'Anneli', 'Anu', 'Diana',
'Ene', 'Eve', 'Kadri', 'Katrin', 'Kristi',
'Kristiina', 'Kristina', 'Laura', 'Linda', 'Maie',
'Malle', 'Mare', 'Maria', 'Marika', 'Merike',
'Niina', 'Piret', 'Reet', 'Riina', 'Sirje',
'Tiina', 'Tiiu', 'Triin', '\u00dclle'
),
first_names_male_rus = c(
'Aleksander', 'Aleksandr', 'Aleksei', 'Alexander',
'Andrei', 'Artur', 'Dmitri', 'Igor', 'Ivan',
'Jevgeni', 'Juri', 'Maksim', 'Mihhail', 'Nikolai',
'Oleg', 'Pavel', 'Roman', 'Sergei', 'Sergey',
'Valeri', 'Viktor', 'Vladimir'
),
first_names_female_rus = c(
'Aleksandra', 'Anna', 'Diana', 'Elena', 'Galina',
'Irina', 'Jekaterina', 'Jelena', 'Julia',
'Kristina', 'Ljubov', 'Ljudmila', 'Maria',
'Marina', 'Nade\u017eda', 'Natalia', 'Natalja', 'Nina',
'Olga', 'Svetlana', 'Tamara', 'Tatiana',
'Tatjana', 'Valentina', 'Viktoria'
),
first_names_rus = c(
'Aleksander', 'Aleksandr', 'Aleksei', 'Alexander',
'Andrei', 'Artur', 'Dmitri', 'Igor', 'Ivan',
'Jevgeni', 'Juri', 'Maksim', 'Mihhail', 'Nikolai',
'Oleg', 'Pavel', 'Roman', 'Sergei', 'Sergey',
'Valeri', 'Viktor', 'Vladimir',
'Aleksandra', 'Anna', 'Diana', 'Elena', 'Galina',
'Irina', 'Jekaterina', 'Jelena', 'Julia',
'Kristina', 'Ljubov', 'Ljudmila', 'Maria',
'Marina', 'Nade\u017eda', 'Natalia', 'Natalja', 'Nina',
'Olga', 'Svetlana', 'Tamara', 'Tatiana',
'Tatjana', 'Valentina', 'Viktoria'
),
first_names_male = c(
"Aivar", "Aleksander", "Alexander", "Andres", "Andrus",
"Ants", "Indrek", "Jaan", "Jaanus", "J\u00fcri",
"Kristjan", "Marek", "Margus", "Marko", "Martin",
"Mati", "Meelis", "Mihkel", "Peeter", "Priit",
"Raivo", "Rein", "Sander", "Siim", "Tarmo",
"Tiit", "Toomas", "T\u00f5nu", "Urmas", "Vello",
"Aleksandr", "Aleksei", "Andrei", "Artur", "Dmitri",
"Igor", "Ivan", "Jevgeni", "Juri", "Maksim",
"Mihhail", "Nikolai", "Oleg", "Pavel", "Roman",
"Sergei", "Sergey", "Valeri", "Viktor", "Vladimir"
),
first_names_female = c(
"Aino", "Anna", "Anne", "Anneli", "Anu",
"Diana", "Ene", "Eve", "Kadri", "Katrin",
"Kristi", "Kristiina", "Kristina", "Laura", "Linda",
"Maie", "Malle", "Mare", "Maria", "Marika",
"Merike", "Niina", "Piret", "Reet", "Riina",
"Sirje", "Tiina", "Tiiu", "Triin", "\u00fclle",
"Aleksandra", "Elena", "Galina", "Irina", "Jekaterina",
"Jelena", "Julia", "Ljubov", "Ljudmila", "Marina",
"Nade\u017eda", "Natalia", "Natalja", "Nina", "Olga",
"Svetlana", "Tamara", "Tatiana", "Tatjana", "Valentina",
"Viktoria"
),
first_names = c(
"Aivar", "Aleksander", "Alexander", "Andres", "Andrus",
"Ants", "Indrek", "Jaan", "Jaanus", "J\u00fcri",
"Kristjan", "Marek", "Margus", "Marko", "Martin",
"Mati", "Meelis", "Mihkel", "Peeter", "Priit",
"Raivo", "Rein", "Sander", "Siim", "Tarmo",
"Tiit", "Toomas", "T\u00f5nu", "Urmas", "Vello",
"Aleksandr", "Aleksei", "Andrei", "Artur", "Dmitri",
"Igor", "Ivan", "Jevgeni", "Juri", "Maksim",
"Mihhail", "Nikolai", "Oleg", "Pavel", "Roman",
"Sergei", "Sergey", "Valeri", "Viktor", "Vladimir",
"Aino", "Anna", "Anne", "Anneli", "Anu",
"Diana", "Ene", "Eve", "Kadri", "Katrin",
"Kristi", "Kristiina", "Kristina", "Laura", "Linda",
"Maie", "Malle", "Mare", "Maria", "Marika",
"Merike", "Niina", "Piret", "Reet", "Riina",
"Sirje", "Tiina", "Tiiu", "Triin", "\u00fclle",
"Aleksandra", "Elena", "Galina", "Irina", "Jekaterina",
"Jelena", "Julia", "Ljubov", "Ljudmila", "Marina",
"Nade\u017eda", "Natalia", "Natalja", "Nina", "Olga",
"Svetlana", "Tamara", "Tatiana", "Tatjana", "Valentina",
"Viktoria"
),
# http://ekspress.delfi.ee/kuum/\
# top-500-eesti-koige-levinumad-perekonnanimed?id=27677149
last_names_est = c(
"Aas",
"Aasa",
"Aasm\u00e4e",
"Aavik",
"Abel",
"Adamson",
"Ader",
"Alas",
"Allas",
"Allik",
"Anderson",
"Annus",
"Anton",
"Arro",
"Aru",
"Arula",
"Aun",
"Aus",
"Eller",
"Erik",
"Erm",
"Ernits",
"Gross",
"Hallik",
"Hansen",
"Hanson",
"Hein",
"Heinsalu",
"Heinsoo",
"Holm",
"Hunt",
"H\u00e4rm",
"Ilves",
"Ivask",
"Jaakson",
"Jaanson",
"Jaanus",
"Jakobson",
"Jalakas",
"Johanson",
"Juhanson",
"Juhkam",
"J\u00e4nes",
"J\u00e4rv",
"J\u00e4rve",
"J\u00f5e",
"J\u00f5esaar",
"J\u00f5gi",
"J\u00fcrgens",
"J\u00fcrgenson",
"J\u00fcrisson",
"Kaasik",
"Kadak",
"Kala",
"Kalamees",
"Kalda",
"Kaljula",
"Kaljurand",
"Kaljuste",
"Kaljuvee",
"Kallas",
"Kallaste",
"Kalm",
"Kalmus",
"Kangro",
"Kangur",
"Kapp",
"Karro",
"Karu",
"Kasak",
"Kase",
"Kasemaa",
"Kasemets",
"Kask",
"Kass",
"Kattai",
"Kaur",
"Kelder",
"Kesk\u00fcla",
"Kiik",
"Kiil",
"Kiis",
"Kiisk",
"Kikas",
"Kikkas",
"Kilk",
"Kink",
"Kirs",
"Kirsipuu",
"Kirss",
"Kivi",
"Kivilo",
"Kivim\u00e4e",
"Kivistik",
"Klaas",
"Klein",
"Koger",
"Kohv",
"Koit",
"Koitla",
"Kokk",
"Kolk",
"Kont",
"Kool",
"Koort",
"Koppel",
"Korol",
"Kotkas",
"Kotov",
"Koval",
"Kozlov",
"Kriisa",
"Kroon",
"Kr\u00f5lov",
"Kudrjavtsev",
"Kulikov",
"Kuningas",
"Kurg",
"Kurm",
"Kurvits",
"Kutsar",
"Kuus",
"Kuuse",
"Kuusik",
"Kuusk",
"K\u00e4rner",
"K\u00e4sper",
"K\u00e4\u00e4r",
"K\u00e4\u00e4rik",
"K\u00f5iv",
"K\u00fctt",
"Laan",
"Laane",
"Laanemets",
"Laas",
"Laht",
"Laine",
"Laks",
"Lang",
"Lass",
"Laur",
"Lauri",
"Lehiste",
"Leht",
"Lehtla",
"Lehtmets",
"Leis",
"Lember",
"Lepik",
"Lepp",
"Leppik",
"Liblik",
"Liiv",
"Liiva",
"Liivak",
"Liivam\u00e4gi",
"Lill",
"Lillemets",
"Lind",
"Link",
"Lipp",
"Lokk",
"Lomp",
"Loorits",
"Luht",
"Luik",
"Lukin",
"Lukk",
"Lumi",
"Lumiste",
"Luts",
"L\u00e4tt",
"L\u00e4\u00e4ne",
"L\u00e4\u00e4ts",
"L\u00f5hmus",
"Maasik",
"Madisson",
"Maidla",
"Mandel",
"Maripuu",
"Mark",
"Markus",
"Martin",
"Martinson",
"Meier",
"Meister",
"Melnik",
"Merila",
"Mets",
"Michelson",
"Mikk",
"Miller",
"Mitt",
"Moor",
"Muru",
"Must",
"M\u00e4e",
"M\u00e4eots",
"M\u00e4esalu",
"M\u00e4gi",
"M\u00e4nd",
"M\u00e4ndla",
"M\u00e4nnik",
"M\u00e4nniste",
"M\u00f5ttus",
"M\u00f6lder",
"M\u00fcrk",
"M\u00fc\u00fcr",
"M\u00fc\u00fcrsepp",
"Niit",
"Nurk",
"Nurm",
"Nuut",
"N\u00f5mm",
"N\u00f5mme",
"N\u00f5mmik",
"Oja",
"Ojala",
"Ojaste",
"Oks",
"Olesk",
"Oras",
"Orav",
"Org",
"Ots",
"Ott",
"Paal",
"Paap",
"Paas",
"Paju",
"Pajula",
"Palm",
"Palu",
"Parts",
"Pent",
"Peterson",
"Pettai",
"Pihelgas",
"Pihlak",
"Piho",
"Piir",
"Piirsalu",
"Pikk",
"Ploom",
"Poom",
"Post",
"Pruul",
"Pukk",
"Pulk",
"Puusepp",
"P\u00e4rn",
"P\u00e4rna",
"P\u00e4rnpuu",
"P\u00e4rtel",
"P\u00f5der",
"P\u00f5dra",
"P\u00f5ld",
"P\u00f5ldma",
"P\u00f5ldmaa",
"P\u00f5llu",
"P\u00fcvi",
"Raadik",
"Raag",
"Raamat",
"Raid",
"Raidma",
"Raja",
"Rand",
"Randmaa",
"Randoja",
"Raud",
"Raudsepp",
"Rebane",
"Reimann",
"Reinsalu",
"Remmel",
"Rohtla",
"Roos",
"Roosileht",
"Roots",
"Rosenberg",
"Rosin",
"Ruus",
"R\u00e4tsep",
"R\u00fc\u00fctel",
"Saar",
"Saare",
"Saks",
"Salu",
"Salumets",
"Salum\u00e4e",
"Sander",
"Sarap",
"Sarapuu",
"Sarv",
"Saul",
"Schmidt",
"Sepp",
"Sibul",
"Siim",
"Sikk",
"Sild",
"Sillaots",
"Sillaste",
"Silm",
"Simson",
"Sirel",
"Sisask",
"Sokk",
"Soo",
"Soon",
"Soosaar",
"Soosalu",
"Soots",
"Suits",
"Sulg",
"Susi",
"Sutt",
"Suur",
"Suvi",
"S\u00e4de",
"S\u00f6\u00f6t",
"Taal",
"Tali",
"Talts",
"Tamberg",
"Tamm",
"Tamme",
"Tammik",
"Teder",
"Teearu",
"Teesalu",
"Teras",
"Tiik",
"Tiits",
"Tilk",
"Tomingas",
"Tomson",
"Toom",
"Toome",
"Tooming",
"Toomsalu",
"Toots",
"Trei",
"Treial",
"Treier",
"Truu",
"Tuisk",
"Tuul",
"Tuulik",
"T\u00e4ht",
"T\u00f5nisson",
"Uibo",
"Unt",
"Urb",
"Uus",
"Uustalu",
"Vaher",
"Vaht",
"Vahter",
"Vahtra",
"Vain",
"Vaino",
"Valge",
"Valk",
"Vares",
"Varik",
"Veski",
"Viik",
"Viira",
"Viks",
"Vill",
"Villemson",
"Visnapuu",
"V\u00e4hi",
"V\u00e4li",
"V\u00f5su",
"\u00d5ispuu",
"\u00d5un",
"\u00d5unapuu"
),
last_names_rus = c(
"Abramov",
"Afanasjev",
"Aleksandrov",
"Alekseev",
"Andreev",
"Anissimov",
"Antonov",
"Baranov",
"Beljajev",
"Belov",
"Bogdanov",
"Bondarenko",
"Borissov",
"B\u00f5strov",
"Danilov",
"Dav\u00f5dov",
"Denissov",
"Dmitriev",
"Drozdov",
"Egorov",
"Fedorov",
"Fedotov",
"Filatov",
"Filippov",
"Fjodorov",
"Fomin",
"Frolov",
"Gavrilov",
"Gerassimov",
"Golubev",
"Gont\u0161arov",
"Gorbunov",
"Grigoriev",
"Gromov",
"Gusev",
"Ignatjev",
"Iljin",
"Ivanov",
"Jakovlev",
"Jefimov",
"Jegorov",
"Jermakov",
"Jer\u0161ov",
"Kalinin",
"Karpov",
"Karpov",
"Kazakov",
"Kirillov",
"Kisseljov",
"Klimov",
"Kolesnik",
"Komarov",
"Kondratjev",
"Konovalov",
"Konstantinov",
"Korol",
"Kostin",
"Kotov",
"Koval",
"Kozlov",
"Kruglov",
"Kr\u00f5lov",
"Kudrjavtsev",
"Kulikov",
"Kuzmin",
"Kuznetsov",
"Lebedev",
"Loginov",
"Lukin",
"Makarov",
"Maksimov",
"Mal\u00f5\u0161ev",
"Maslov",
"Matvejev",
"Medvedev",
"Melnik",
"Mihhailov",
"Miller",
"Mironov",
"Moroz",
"Naumov",
"Nazarov",
"Nikiforov",
"Nikitin",
"Nikolaev",
"Novikov",
"Orlov",
"Ossipov",
"Panov",
"Pavlov",
"Petrov",
"Poljakov",
"Popov",
"Romanov",
"Rosenberg",
"Rumjantsev",
"Safronov",
"Saveljev",
"Semenov",
"Sergejev",
"Sidorov",
"Smirnov",
"Sobolev",
"Sokolov",
"Solovjov",
"Sorokin",
"Stepanov",
"Suvorov",
"Tarassov",
"Tihhomirov",
"Timofejev",
"Titov",
"Trofimov",
"Tsvetkov",
"Vasiliev",
"Vinogradov",
"Vlassov",
"Volkov",
"Vorobjov",
"Voronin",
"Zahharov",
"Zaitsev",
"Zujev",
"\u0160evt\u0161enko",
"\u0160t\u0161erbakov",
"\u0160t\u0161erbakov",
"\u017dukov",
"\u017duravljov"
),
last_names = c(
"Aas",
"Aasa",
"Aasm\u00e4e",
"Aavik",
"Abel",
"Adamson",
"Ader",
"Alas",
"Allas",
"Allik",
"Anderson",
"Annus",
"Anton",
"Arro",
"Aru",
"Arula",
"Aun",
"Aus",
"Eller",
"Erik",
"Erm",
"Ernits",
"Gross",
"Hallik",
"Hansen",
"Hanson",
"Hein",
"Heinsalu",
"Heinsoo",
"Holm",
"Hunt",
"H\u00e4rm",
"Ilves",
"Ivask",
"Jaakson",
"Jaanson",
"Jaanus",
"Jakobson",
"Jalakas",
"Johanson",
"Juhanson",
"Juhkam",
"J\u00e4nes",
"J\u00e4rv",
"J\u00e4rve",
"J\u00f5e",
"J\u00f5esaar",
"J\u00f5gi",
"J\u00fcrgens",
"J\u00fcrgenson",
"J\u00fcrisson",
"Kaasik",
"Kadak",
"Kala",
"Kalamees",
"Kalda",
"Kaljula",
"Kaljurand",
"Kaljuste",
"Kaljuvee",
"Kallas",
"Kallaste",
"Kalm",
"Kalmus",
"Kangro",
"Kangur",
"Kapp",
"Karro",
"Karu",
"Kasak",
"Kase",
"Kasemaa",
"Kasemets",
"Kask",
"Kass",
"Kattai",
"Kaur",
"Kelder",
"Kesk\u00fcla",
"Kiik",
"Kiil",
"Kiis",
"Kiisk",
"Kikas",
"Kikkas",
"Kilk",
"Kink",
"Kirs",
"Kirsipuu",
"Kirss",
"Kivi",
"Kivilo",
"Kivim\u00e4e",
"Kivistik",
"Klaas",
"Klein",
"Koger",
"Kohv",
"Koit",
"Koitla",
"Kokk",
"Kolk",
"Kont",
"Kool",
"Koort",
"Koppel",
"Korol",
"Kotkas",
"Kotov",
"Koval",
"Kozlov",
"Kriisa",
"Kroon",
"Kr\u00f5lov",
"Kudrjavtsev",
"Kulikov",
"Kuningas",
"Kurg",
"Kurm",
"Kurvits",
"Kutsar",
"Kuus",
"Kuuse",
"Kuusik",
"Kuusk",
"K\u00e4rner",
"K\u00e4sper",
"K\u00e4\u00e4r",
"K\u00e4\u00e4rik",
"K\u00f5iv",
"K\u00fctt",
"Laan",
"Laane",
"Laanemets",
"Laas",
"Laht",
"Laine",
"Laks",
"Lang",
"Lass",
"Laur",
"Lauri",
"Lehiste",
"Leht",
"Lehtla",
"Lehtmets",
"Leis",
"Lember",
"Lepik",
"Lepp",
"Leppik",
"Liblik",
"Liiv",
"Liiva",
"Liivak",
"Liivam\u00e4gi",
"Lill",
"Lillemets",
"Lind",
"Link",
"Lipp",
"Lokk",
"Lomp",
"Loorits",
"Luht",
"Luik",
"Lukin",
"Lukk",
"Lumi",
"Lumiste",
"Luts",
"L\u00e4tt",
"L\u00e4\u00e4ne",
"L\u00e4\u00e4ts",
"L\u00f5hmus",
"Maasik",
"Madisson",
"Maidla",
"Mandel",
"Maripuu",
"Mark",
"Markus",
"Martin",
"Martinson",
"Meier",
"Meister",
"Melnik",
"Merila",
"Mets",
"Michelson",
"Mikk",
"Miller",
"Mitt",
"Moor",
"Muru",
"Must",
"M\u00e4e",
"M\u00e4eots",
"M\u00e4esalu",
"M\u00e4gi",
"M\u00e4nd",
"M\u00e4ndla",
"M\u00e4nnik",
"M\u00e4nniste",
"M\u00f5ttus",
"M\u00f6lder",
"M\u00fcrk",
"M\u00fc\u00fcr",
"M\u00fc\u00fcrsepp",
"Niit",
"Nurk",
"Nurm",
"Nuut",
"N\u00f5mm",
"N\u00f5mme",
"N\u00f5mmik",
"Oja",
"Ojala",
"Ojaste",
"Oks",
"Olesk",
"Oras",
"Orav",
"Org",
"Ots",
"Ott",
"Paal",
"Paap",
"Paas",
"Paju",
"Pajula",
"Palm",
"Palu",
"Parts",
"Pent",
"Peterson",
"Pettai",
"Pihelgas",
"Pihlak",
"Piho",
"Piir",
"Piirsalu",
"Pikk",
"Ploom",
"Poom",
"Post",
"Pruul",
"Pukk",
"Pulk",
"Puusepp",
"P\u00e4rn",
"P\u00e4rna",
"P\u00e4rnpuu",
"P\u00e4rtel",
"P\u00f5der",
"P\u00f5dra",
"P\u00f5ld",
"P\u00f5ldma",
"P\u00f5ldmaa",
"P\u00f5llu",
"P\u00fcvi",
"Raadik",
"Raag",
"Raamat",
"Raid",
"Raidma",
"Raja",
"Rand",
"Randmaa",
"Randoja",
"Raud",
"Raudsepp",
"Rebane",
"Reimann",
"Reinsalu",
"Remmel",
"Rohtla",
"Roos",
"Roosileht",
"Roots",
"Rosenberg",
"Rosin",
"Ruus",
"R\u00e4tsep",
"R\u00fc\u00fctel",
"Saar",
"Saare",
"Saks",
"Salu",
"Salumets",
"Salum\u00e4e",
"Sander",
"Sarap",
"Sarapuu",
"Sarv",
"Saul",
"Schmidt",
"Sepp",
"Sibul",
"Siim",
"Sikk",
"Sild",
"Sillaots",
"Sillaste",
"Silm",
"Simson",
"Sirel",
"Sisask",
"Sokk",
"Soo",
"Soon",
"Soosaar",
"Soosalu",
"Soots",
"Suits",
"Sulg",
"Susi",
"Sutt",
"Suur",
"Suvi",
"S\u00e4de",
"S\u00f6\u00f6t",
"Taal",
"Tali",
"Talts",
"Tamberg",
"Tamm",
"Tamme",
"Tammik",
"Teder",
"Teearu",
"Teesalu",
"Teras",
"Tiik",
"Tiits",
"Tilk",
"Tomingas",
"Tomson",
"Toom",
"Toome",
"Tooming",
"Toomsalu",
"Toots",
"Trei",
"Treial",
"Treier",
"Truu",
"Tuisk",
"Tuul",
"Tuulik",
"T\u00e4ht",
"T\u00f5nisson",
"Uibo",
"Unt",
"Urb",
"Uus",
"Uustalu",
"Vaher",
"Vaht",
"Vahter",
"Vahtra",
"Vain",
"Vaino",
"Valge",
"Valk",
"Vares",
"Varik",
"Veski",
"Viik",
"Viira",
"Viks",
"Vill",
"Villemson",
"Visnapuu",
"V\u00e4hi",
"V\u00e4li",
"V\u00f5su",
"\u00d5ispuu",
"\u00d5un",
"\u00d5unapuu",
"Abramov",
"Afanasjev",
"Aleksandrov",
"Alekseev",
"Andreev",
"Anissimov",
"Antonov",
"Baranov",
"Beljajev",
"Belov",
"Bogdanov",
"Bondarenko",
"Borissov",
"B\u00f5strov",
"Danilov",
"Dav\u00f5dov",
"Denissov",
"Dmitriev",
"Drozdov",
"Egorov",
"Fedorov",
"Fedotov",
"Filatov",
"Filippov",
"Fjodorov",
"Fomin",
"Frolov",
"Gavrilov",
"Gerassimov",
"Golubev",
"Gont\u0161arov",
"Gorbunov",
"Grigoriev",
"Gromov",
"Gusev",
"Ignatjev",
"Iljin",
"Ivanov",
"Jakovlev",
"Jefimov",
"Jegorov",
"Jermakov",
"Jer\u0161ov",
"Kalinin",
"Karpov",
"Kazakov",
"Kirillov",
"Kisseljov",
"Klimov",
"Kolesnik",
"Komarov",
"Kondratjev",
"Konovalov",
"Konstantinov",
"Kostin",
"Kruglov",
"Kuzmin",
"Kuznetsov",
"Lebedev",
"Loginov",
"Makarov",
"Maksimov",
"Mal\u00f5\u0161ev",
"Maslov",
"Matvejev",
"Medvedev",
"Mihhailov",
"Mironov",
"Moroz",
"Naumov",
"Nazarov",
"Nikiforov",
"Nikitin",
"Nikolaev",
"Novikov",
"Orlov",
"Ossipov",
"Panov",
"Pavlov",
"Petrov",
"Poljakov",
"Popov",
"Romanov",
"Rumjantsev",
"Safronov",
"Saveljev",
"Semenov",
"Sergejev",
"Sidorov",
"Smirnov",
"Sobolev",
"Sokolov",
"Solovjov",
"Sorokin",
"Stepanov",
"Suvorov",
"Tarassov",
"Tihhomirov",
"Timofejev",
"Titov",
"Trofimov",
"Tsvetkov",
"Vasiliev",
"Vinogradov",
"Vlassov",
"Volkov",
"Vorobjov",
"Voronin",
"Zahharov",
"Zaitsev",
"Zujev",
"\u0160evt\u0161enko",
"\u0160t\u0161erbakov",
"\u017dukov",
"\u017duravljov"
)
),
public = list(
first_name_male_est = function(){
return(private$random_element(private$first_names_male_est))
},
first_name_female_est = function(){
return(private$random_element(private$first_names_female_est))
},
first_name_male_rus = function(){
return(private$random_element(private$first_names_male_rus))
},
first_name_female_rus = function(){
return(private$random_element(private$first_names_female_rus))
},
first_name_est = function() {
return(private$random_element(private$first_names_est))
},
first_name_rus = function() {
return(private$random_element(private$first_names_rus))
},
last_name_est = function() {
return(private$random_element(private$last_names_est))
},
last_name_rus = function() {
return(private$random_element(private$last_names_rus))
}
)
)
# ssn ----------------------------------
ssn_et_EE = R6Class(
"ssn_et_EE",
inherit = ssn_init,
cloneable = FALSE,
private = list(
vat_id_formats = 'EE#########',
scale1 = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 1),
scale2 = c(3, 4, 5, 6, 7, 8, 9, 1, 2, 3),
checksum = function(digits) {
sum_mod11 = sum(digits * private$scale1) %% 11
if (sum_mod11 < 10) {
return(sum_mod11)
}
sum_mod11 = sum(digits * private$scale2) %% 11
return(ifelse(sum_mod11 == 10, 0, sum_mod11))
}
),
public = list(
ssn = function(min_age = 16, max_age = 90) {
# Returns 11 character Estonian personal identity code (isikukood, IK).
# Age of person is between 16 and 90 years, based on local computer date.
# This function assigns random sex to person.
# An Estonian Personal identification code consists of 11 digits,
# generally given without any whitespace or other delimiters.
# The form is GYYMMDDSSSC, where G shows sex and century of birth (odd
# number male, even number female, 1-2 19th century, 3-4 20th century,
# 5-6 21st century), SSS is a serial number separating persons born on
# the same date and C a checksum.
# https://en.wikipedia.org/wiki/National_identification_number#Estonia
age = ddays(private$random_int(min_age * 365, max_age * 365))
birthday = today() - age
if (year(birthday) < 2000) {
ik = sample(c("3", "4"), 1)
} else {
if (year(birthday) < 2100) {
ik = sample(c("5", "6"), 1)
} else {
ik = sample(c("7", "8"), 1)
}
}
ik = str_c(ik, sprintf("%02d", year(birthday) %% 100),
sprintf("%02d", month(birthday)),
sprintf("%02d", day(birthday)))
ik = str_c(ik, sprintf("%03d", round(runif(1, min = 0, max = 998))))
temp = private$checksum(as.integer(str_split(ik, "")[[1]]))
return(str_c(ik, temp))
},
vat_id = function(){
# http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
# :return: A random Estonian VAT ID
return(private$bothify(private$random_element(private$vat_id_formats)))
}
)
)
# address -----------------------------
address_et_EE = R6Class(
"address_et_EE",
inherit = address_en_US,
cloneable = FALSE,
private = list(
first_names = (person_et_EE$new())$.__enclos_env__$private$first_names,
last_names = (person_et_EE$new())$.__enclos_env__$private$last_names,
first_name = (person_et_EE$new())$first_name,
last_name = (person_et_EE$new())$last_name
)
)
# company ---------------------------------
company_et_EE = R6Class(
"company_et_EE",
inherit = company_en_US,
cloneable = FALSE,
private = list(
first_names = (person_et_EE$new())$.__enclos_env__$private$first_names,
last_names = (person_et_EE$new())$.__enclos_env__$private$last_names,
first_name = (person_et_EE$new())$first_name,
last_name = (person_et_EE$new())$last_name
)
)
## credit_card -----------------
credit_card_et_EE = R6Class(
"credit_card_et_EE",
inherit = credit_card_init,
cloneable = FALSE,
private = list(
first_names = (person_et_EE$new())$.__enclos_env__$private$first_names,
first_name = (person_et_EE$new())$first_name,
last_names = (person_et_EE$new())$.__enclos_env__$private$last_names,
last_name = (person_et_EE$new())$last_name
)
)
## profile ------------------
profile_et_EE = R6Class(
"profile_et_EE",
inherit = profile_init,
cloneable = FALSE,
public = list(
simple_profile = function(sex) {
# Generates a basic profile with personal informations
SEX = c("F", "M")
if (missing(sex)) {
sex = sample(SEX, 1)
}
if (!(sex %in% SEX)) {
sex = sample(SEX, 1)
}
name = ifelse(sex == "F",
(person_et_EE$new())$name_female(),
(person_et_EE$new())$name_male())
temp = list(
"username" = (internet_en_US$new())$user_name(),
"name" = name,
"sex" = sex,
"address" = (address_et_EE$new())$address(),
"mail" = (internet_en_US$new())$free_email(),
"birthdate" = (date_time_init$new())$date_of_birth()
)
return(temp)
},
profile = function(fields, sex) {
# Generates a complete profile.
# If "fields" is not empty, only the fields in the list will be returned
if (missing(fields)) fields = c()
field = list(
"job" = (job_init$new())$job(),
"company" = (company_et_EE$new())$company(),
"ssn" = (ssn_et_EE$new())$ssn(),
"residence" = (address_et_EE$new())$address(),
"current_location" = c((geo_init$new())$latitude(),
(geo_init$new())$longitude()),
"blood_group" = sample(c(
"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"), 1),
"website" = replicate(sample(seq(4), 1), (internet_en_US$new())$url())
)
field = append(field, self$simple_profile(sex))
# field selection
if (length(fields)) {
nms = intersect(names(field), fields)
field = field[nms]
}
return(field)
}
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.