# person -----------------------------
person_fi_FI = R6Class(
"person_fi_FI",
inherit = person_init,
cloneable = FALSE,
private = list(
formats_female = c(
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}-{last_name}'),
formats_male = c(
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}-{last_name}'),
formats = c(
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {last_name}-{last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {last_name}-{last_name}'),
prefixes = c(
'Herra', 'hra', 'Rouva', 'rva', 'Tohtori', 'tri', 'prof.', 'arkkit.'),
suffixes = c('DI', 'PhD', 'MSc', 'BSc'),
# List of most popular given names in Finland:
# https://www.avoindata.fi/data/en/dataset/none/resource/d35f8973-53da-4b66-8a49-bc2fee1a2996
first_names_female = list(
c("Aada", 0.001877),
c("Aila", 0.002778),
c("Aili", 0.001542),
c("Aino", 0.00803),
c("Airi", 0.001591),
c("Aleksandra", 0.002884),
c("Alexandra", 0.002718),
c("Alina", 0.002114),
c("Alisa", 0.001607),
c("Amanda", 0.004584),
c("Anita", 0.005061),
c("Anja", 0.005627),
c("Anna", 0.010413),
c("Anna-Liisa", 0.00232),
c("Anne", 0.007823),
c("Anneli", 0.0277),
c("Anni", 0.004397),
c("Anniina", 0.003366),
c("Annika", 0.005193),
c("Annikki", 0.013414),
c("Annukka", 0.001424),
c("Anu", 0.003005),
c("Arja", 0.004539),
c("Aulikki", 0.002522),
c("Aune", 0.00208),
c("Aurora", 0.003709),
c("Birgitta", 0.003324),
c("Carita", 0.001574),
c("Christina", 0.001534),
c("Eeva", 0.006403),
c("Eija", 0.00491),
c("Eila", 0.005377),
c("Eliisa", 0.00163),
c("Elina", 0.014353),
c("Elisa", 0.00424),
c("Elisabet", 0.005925),
c("Elisabeth", 0.004305),
c("Ella", 0.002958),
c("Ellen", 0.002243),
c("Elli", 0.002258),
c("Elsa", 0.002284),
c("Emilia", 0.014649),
c("Emma", 0.003571),
c("Emmi", 0.002183),
c("Erika", 0.002084),
c("Essi", 0.001576),
c("Esteri", 0.001672),
c("Eveliina", 0.005899),
c("Hanna", 0.005409),
c("Hannele", 0.0193),
c("Heidi", 0.005315),
c("Helena", 0.028118),
c("Heli", 0.003711),
c("Helin\u00e4", 0.002151),
c("Hellevi", 0.002416),
c("Helmi", 0.003888),
c("Helvi", 0.001462),
c("Henna", 0.002525),
c("Hilkka", 0.003745),
c("Hillevi", 0.001577),
c("Ida", 0.003067),
c("Iida", 0.003699),
c("Iiris", 0.001461),
c("Ilona", 0.004816),
c("Inkeri", 0.009444),
c("Irene", 0.005164),
c("Irja", 0.002691),
c("Irma", 0.002772),
c("Irmeli", 0.006537),
c("Jaana", 0.005125),
c("Jasmin", 0.001789),
c("Jenna", 0.002567),
c("Jenni", 0.004011),
c("Johanna", 0.025061),
c("Jonna", 0.002053),
c("Josefiina", 0.001757),
c("Julia", 0.004716),
c("Juulia", 0.001411),
c("Kaarina", 0.022441),
c("Kaija", 0.003216),
c("Kaisa", 0.004424),
c("Karoliina", 0.006727),
c("Katariina", 0.010602),
c("Kati", 0.002463),
c("Katja", 0.00381),
c("Katri", 0.00337),
c("Katriina", 0.004651),
c("Kerttu", 0.002839),
c("Kirsi", 0.004856),
c("Kirsti", 0.003699),
c("Krista", 0.001465),
c("Kristiina", 0.016656),
c("Kristina", 0.002653),
c("Kyllikki", 0.008537),
c("Laura", 0.005985),
c("Lea", 0.002827),
c("Leena", 0.011052),
c("Leila", 0.00267),
c("Liisa", 0.015791),
c("Lilja", 0.001584),
c("Linda", 0.001706),
c("Linnea", 0.004089),
c("Lotta", 0.002416),
c("Maaria", 0.00335),
c("Maarit", 0.012853),
c("Maija", 0.00721),
c("Maire", 0.001814),
c("Margareta", 0.002525),
c("Margit", 0.002057),
c("Mari", 0.005431),
c("Maria", 0.044412),
c("Marianne", 0.00481),
c("Marika", 0.005912),
c("Marita", 0.005339),
c("Maritta", 0.002299),
c("Marja", 0.010093),
c("Marja-Leena", 0.002611),
c("Marja-Liisa", 0.002389),
c("Marjaana", 0.004377),
c("Marjatta", 0.020442),
c("Marjo", 0.002613),
c("Marjukka", 0.001486),
c("Marjut", 0.003021),
c("Marketta", 0.004413),
c("Martta", 0.001663),
c("Matilda", 0.004284),
c("Merja", 0.004704),
c("Mervi", 0.002193),
c("Mia", 0.001736),
c("Miia", 0.002146),
c("Milla", 0.002204),
c("Minna", 0.006615),
c("Mira", 0.001706),
c("Mirja", 0.003558),
c("Mirjam", 0.002435),
c("Mirjami", 0.003726),
c("Nea", 0.001605),
c("Niina", 0.002776),
c("Nina", 0.003539),
c("Noora", 0.002609),
c("Olivia", 0.00384),
c("Oona", 0.001707),
c("Orvokki", 0.007473),
c("Outi", 0.002278),
c("P\u00e4ivi", 0.007556),
c("P\u00e4ivikki", 0.002189),
c("Paula", 0.004438),
c("Pauliina", 0.006648),
c("Petra", 0.001455),
c("Pia", 0.002752),
c("Piia", 0.00155),
c("Pirjo", 0.006778),
c("Pirkko", 0.005904),
c("Raija", 0.005237),
c("Raili", 0.003592),
c("Riikka", 0.00301),
c("Riitta", 0.008817),
c("Ritva", 0.007408),
c("Roosa", 0.001641),
c("Saara", 0.002931),
c("Sanna", 0.005027),
c("Sanni", 0.001827),
c("Sara", 0.003165),
c("Sari", 0.00656),
c("Satu", 0.005599),
c("Seija", 0.005422),
c("Siiri", 0.002066),
c("Sini", 0.002038),
c("Sinikka", 0.010005),
c("Sirkka", 0.004487),
c("Sirpa", 0.005252),
c("Sisko", 0.005153),
c("Sofia", 0.012669),
c("Sonja", 0.001978),
c("Susanna", 0.012647),
c("Suvi", 0.003093),
c("Taina", 0.002224),
c("Tanja", 0.002577),
c("Tarja", 0.005886),
c("Taru", 0.001492),
c("Teija", 0.001634),
c("Tellervo", 0.007298),
c("Terhi", 0.001779),
c("Terttu", 0.004408),
c("Tiia", 0.002003),
c("Tiina", 0.006154),
c("Tuija", 0.002932),
c("Tuula", 0.007947),
c("Tuuli", 0.001425),
c("Tuulia", 0.004341),
c("Tuulikki", 0.013373),
c("Ulla", 0.004552),
c("Veera", 0.002453),
c("Venla", 0.001985),
c("Viivi", 0.001505),
c("Vilhelmiina", 0.002004),
c("Vilma", 0.001724),
c("Virpi", 0.00213),
c("Vuokko", 0.001466)),
first_names_male = list(
c("Aapo", 0.001263),
c("Aarne", 0.001939),
c("Aaro", 0.001601),
c("Aaron", 0.001246),
c("Aatos", 0.001552),
c("Ahti", 0.001192),
c("Aimo", 0.001399),
c("Aki", 0.001881),
c("Akseli", 0.002333),
c("Aleksanteri", 0.002618),
c("Aleksi", 0.008346),
c("Alexander", 0.002728),
c("Allan", 0.00227),
c("Anders", 0.001411),
c("Anssi", 0.001464),
c("Antero", 0.029891),
c("Anton", 0.002652),
c("Antti", 0.011971),
c("Ari", 0.006403),
c("Armas", 0.003609),
c("Arto", 0.004059),
c("Arttu", 0.00228),
c("Artturi", 0.001853),
c("Arvo", 0.001578),
c("Asko", 0.001363),
c("Atte", 0.001392),
c("Aukusti", 0.002011),
c("Aulis", 0.002725),
c("Benjamin", 0.002089),
c("Christian", 0.002142),
c("Daniel", 0.002919),
c("Edvard", 0.001248),
c("Eelis", 0.001359),
c("Eemeli", 0.004734),
c("Eemil", 0.002606),
c("Eerik", 0.001629),
c("Eero", 0.005572),
c("Eetu", 0.003098),
c("Einari", 0.002263),
c("Eino", 0.004304),
c("Elias", 0.005129),
c("Elmeri", 0.001817),
c("Emil", 0.003422),
c("Ensio", 0.006508),
c("Erik", 0.005296),
c("Erkki", 0.007568),
c("Esa", 0.0043),
c("Esko", 0.004194),
c("Hannu", 0.007429),
c("Harri", 0.004739),
c("Heikki", 0.011301),
c("Henri", 0.003282),
c("Henrik", 0.007534),
c("Henrikki", 0.001325),
c("Henry", 0.001412),
c("Hermanni", 0.00167),
c("Iisakki", 0.001193),
c("Ilari", 0.002866),
c("Ilkka", 0.003098),
c("Ilmari", 0.015056),
c("Ismo", 0.00148),
c("Jaakko", 0.008225),
c("Jalmari", 0.002645),
c("Jan", 0.002011),
c("Jani", 0.005117),
c("Janne", 0.006361),
c("Jari", 0.008664),
c("Jarkko", 0.002672),
c("Jarmo", 0.004396),
c("Jarno", 0.001681),
c("Jere", 0.002255),
c("Jesse", 0.002586),
c("Joel", 0.002105),
c("Johan", 0.003528),
c("Johannes", 0.028915),
c("Joni", 0.003244),
c("Joona", 0.002503),
c("Joonas", 0.003828),
c("Joonatan", 0.001565),
c("Jorma", 0.005147),
c("Jouko", 0.003962),
c("Jouni", 0.004093),
c("Juha", 0.011567),
c("Juhana", 0.001862),
c("Juhani", 0.061356),
c("Juho", 0.005642),
c("Jukka", 0.008652),
c("Julius", 0.00209),
c("Jussi", 0.004772),
c("Juuso", 0.002224),
c("Jyrki", 0.002127),
c("Kaarlo", 0.002073),
c("Kai", 0.001942),
c("Kalervo", 0.008502),
c("Kalevi", 0.021057),
c("Kalle", 0.003829),
c("Kari", 0.009761),
c("Karl", 0.001779),
c("Kasper", 0.001177),
c("Kauko", 0.002169),
c("Keijo", 0.002259),
c("Kim", 0.001172),
c("Kimmo", 0.003441),
c("Kristian", 0.011096),
c("Kullervo", 0.002234),
c("Kustaa", 0.001144),
c("Lasse", 0.002197),
c("Lassi", 0.001214),
c("Lauri", 0.00755),
c("Leevi", 0.002015),
c("Leo", 0.003319),
c("Markku", 0.00843),
c("Marko", 0.006297),
c("Markus", 0.009181),
c("Martti", 0.005521),
c("Matias", 0.013377),
c("Matti", 0.01756),
c("Mauno", 0.001189),
c("Mauri", 0.002098),
c("Miika", 0.001845),
c("Mika", 0.007765),
c("Mikael", 0.021621),
c("Mikko", 0.009719),
c("Miro", 0.001274),
c("Niilo", 0.002094),
c("Niklas", 0.002024),
c("Niko", 0.003908),
c("Oiva", 0.001202),
c("Olavi", 0.030903),
c("Oliver", 0.003026),
c("Olli", 0.003921),
c("Onni", 0.004513),
c("Oskar", 0.001185),
c("Oskari", 0.007745),
c("Osmo", 0.001531),
c("Ossi", 0.001591),
c("Otto", 0.002902),
c("Paavo", 0.00381),
c("Pasi", 0.004109),
c("Patrik", 0.001474),
c("Pauli", 0.003105),
c("Pekka", 0.017016),
c("Pentti", 0.006344),
c("Pertti", 0.004406),
c("Peter", 0.001704),
c("Petri", 0.00786),
c("Petteri", 0.015518),
c("Raimo", 0.004575),
c("Rainer", 0.001478),
c("Rasmus", 0.001715),
c("Rauno", 0.001688),
c("Reijo", 0.003919),
c("Reino", 0.002166),
c("Riku", 0.001803),
c("Risto", 0.004678),
c("Robert", 0.001478),
c("Roope", 0.001412),
c("Sakari", 0.013891),
c("Sami", 0.00587),
c("Samu", 0.001237),
c("Samuel", 0.00403),
c("Samuli", 0.004994),
c("Santeri", 0.00346),
c("Sebastian", 0.002863),
c("Seppo", 0.007305),
c("Simo", 0.002313),
c("Taisto", 0.001514),
c("Taneli", 0.00129),
c("Tapani", 0.02906),
c("Tapio", 0.024776),
c("Tauno", 0.001795),
c("Teemu", 0.004605),
c("Tero", 0.003188),
c("Teuvo", 0.001714),
c("Timo", 0.010557),
c("Toivo", 0.003649),
c("Tomi", 0.00341),
c("Tommi", 0.003191),
c("Toni", 0.003723),
c("Topias", 0.001645),
c("Tuomas", 0.005948),
c("Tuomo", 0.002739),
c("Tuukka", 0.001175),
c("Uolevi", 0.002879),
c("V\u00e4in\u00f6", 0.003176),
c("Valdemar", 0.00152),
c("Valtteri", 0.006312),
c("Veeti", 0.001673),
c("Veijo", 0.001517),
c("Veikko", 0.007525),
c("Veli", 0.004415),
c("Verneri", 0.001164),
c("Vesa", 0.003926),
c("Vilhelm", 0.001591),
c("Vilho", 0.002303),
c("Viljami", 0.003563),
c("Viljo", 0.00154),
c("Ville", 0.007025),
c("Yrj\u00f6", 0.001912)),
first_names = list(
c("Aada", 0.001877),
c("Aila", 0.002778),
c("Aili", 0.001542),
c("Aino", 0.00803),
c("Airi", 0.001591),
c("Aleksandra", 0.002884),
c("Alexandra", 0.002718),
c("Alina", 0.002114),
c("Alisa", 0.001607),
c("Amanda", 0.004584),
c("Anita", 0.005061),
c("Anja", 0.005627),
c("Anna", 0.010413),
c("Anna-Liisa", 0.00232),
c("Anne", 0.007823),
c("Anneli", 0.0277),
c("Anni", 0.004397),
c("Anniina", 0.003366),
c("Annika", 0.005193),
c("Annikki", 0.013414),
c("Annukka", 0.001424),
c("Anu", 0.003005),
c("Arja", 0.004539),
c("Aulikki", 0.002522),
c("Aune", 0.00208),
c("Aurora", 0.003709),
c("Birgitta", 0.003324),
c("Carita", 0.001574),
c("Christina", 0.001534),
c("Eeva", 0.006403),
c("Eija", 0.00491),
c("Eila", 0.005377),
c("Eliisa", 0.00163),
c("Elina", 0.014353),
c("Elisa", 0.00424),
c("Elisabet", 0.005925),
c("Elisabeth", 0.004305),
c("Ella", 0.002958),
c("Ellen", 0.002243),
c("Elli", 0.002258),
c("Elsa", 0.002284),
c("Emilia", 0.014649),
c("Emma", 0.003571),
c("Emmi", 0.002183),
c("Erika", 0.002084),
c("Essi", 0.001576),
c("Esteri", 0.001672),
c("Eveliina", 0.005899),
c("Hanna", 0.005409),
c("Hannele", 0.0193),
c("Heidi", 0.005315),
c("Helena", 0.028118),
c("Heli", 0.003711),
c("Helin\u00e4", 0.002151),
c("Hellevi", 0.002416),
c("Helmi", 0.003888),
c("Helvi", 0.001462),
c("Henna", 0.002525),
c("Hilkka", 0.003745),
c("Hillevi", 0.001577),
c("Ida", 0.003067),
c("Iida", 0.003699),
c("Iiris", 0.001461),
c("Ilona", 0.004816),
c("Inkeri", 0.009444),
c("Irene", 0.005164),
c("Irja", 0.002691),
c("Irma", 0.002772),
c("Irmeli", 0.006537),
c("Jaana", 0.005125),
c("Jasmin", 0.001789),
c("Jenna", 0.002567),
c("Jenni", 0.004011),
c("Johanna", 0.025061),
c("Jonna", 0.002053),
c("Josefiina", 0.001757),
c("Julia", 0.004716),
c("Juulia", 0.001411),
c("Kaarina", 0.022441),
c("Kaija", 0.003216),
c("Kaisa", 0.004424),
c("Karoliina", 0.006727),
c("Katariina", 0.010602),
c("Kati", 0.002463),
c("Katja", 0.00381),
c("Katri", 0.00337),
c("Katriina", 0.004651),
c("Kerttu", 0.002839),
c("Kirsi", 0.004856),
c("Kirsti", 0.003699),
c("Krista", 0.001465),
c("Kristiina", 0.016656),
c("Kristina", 0.002653),
c("Kyllikki", 0.008537),
c("Laura", 0.005985),
c("Lea", 0.002827),
c("Leena", 0.011052),
c("Leila", 0.00267),
c("Liisa", 0.015791),
c("Lilja", 0.001584),
c("Linda", 0.001706),
c("Linnea", 0.004089),
c("Lotta", 0.002416),
c("Maaria", 0.00335),
c("Maarit", 0.012853),
c("Maija", 0.00721),
c("Maire", 0.001814),
c("Margareta", 0.002525),
c("Margit", 0.002057),
c("Mari", 0.005431),
c("Maria", 0.044412),
c("Marianne", 0.00481),
c("Marika", 0.005912),
c("Marita", 0.005339),
c("Maritta", 0.002299),
c("Marja", 0.010093),
c("Marja-Leena", 0.002611),
c("Marja-Liisa", 0.002389),
c("Marjaana", 0.004377),
c("Marjatta", 0.020442),
c("Marjo", 0.002613),
c("Marjukka", 0.001486),
c("Marjut", 0.003021),
c("Marketta", 0.004413),
c("Martta", 0.001663),
c("Matilda", 0.004284),
c("Merja", 0.004704),
c("Mervi", 0.002193),
c("Mia", 0.001736),
c("Miia", 0.002146),
c("Milla", 0.002204),
c("Minna", 0.006615),
c("Mira", 0.001706),
c("Mirja", 0.003558),
c("Mirjam", 0.002435),
c("Mirjami", 0.003726),
c("Nea", 0.001605),
c("Niina", 0.002776),
c("Nina", 0.003539),
c("Noora", 0.002609),
c("Olivia", 0.00384),
c("Oona", 0.001707),
c("Orvokki", 0.007473),
c("Outi", 0.002278),
c("P\u00e4ivi", 0.007556),
c("P\u00e4ivikki", 0.002189),
c("Paula", 0.004438),
c("Pauliina", 0.006648),
c("Petra", 0.001455),
c("Pia", 0.002752),
c("Piia", 0.00155),
c("Pirjo", 0.006778),
c("Pirkko", 0.005904),
c("Raija", 0.005237),
c("Raili", 0.003592),
c("Riikka", 0.00301),
c("Riitta", 0.008817),
c("Ritva", 0.007408),
c("Roosa", 0.001641),
c("Saara", 0.002931),
c("Sanna", 0.005027),
c("Sanni", 0.001827),
c("Sara", 0.003165),
c("Sari", 0.00656),
c("Satu", 0.005599),
c("Seija", 0.005422),
c("Siiri", 0.002066),
c("Sini", 0.002038),
c("Sinikka", 0.010005),
c("Sirkka", 0.004487),
c("Sirpa", 0.005252),
c("Sisko", 0.005153),
c("Sofia", 0.012669),
c("Sonja", 0.001978),
c("Susanna", 0.012647),
c("Suvi", 0.003093),
c("Taina", 0.002224),
c("Tanja", 0.002577),
c("Tarja", 0.005886),
c("Taru", 0.001492),
c("Teija", 0.001634),
c("Tellervo", 0.007298),
c("Terhi", 0.001779),
c("Terttu", 0.004408),
c("Tiia", 0.002003),
c("Tiina", 0.006154),
c("Tuija", 0.002932),
c("Tuula", 0.007947),
c("Tuuli", 0.001425),
c("Tuulia", 0.004341),
c("Tuulikki", 0.013373),
c("Ulla", 0.004552),
c("Veera", 0.002453),
c("Venla", 0.001985),
c("Viivi", 0.001505),
c("Vilhelmiina", 0.002004),
c("Vilma", 0.001724),
c("Virpi", 0.00213),
c("Vuokko", 0.001466),
c("Aapo", 0.001263),
c("Aarne", 0.001939),
c("Aaro", 0.001601),
c("Aaron", 0.001246),
c("Aatos", 0.001552),
c("Ahti", 0.001192),
c("Aimo", 0.001399),
c("Aki", 0.001881),
c("Akseli", 0.002333),
c("Aleksanteri", 0.002618),
c("Aleksi", 0.008346),
c("Alexander", 0.002728),
c("Allan", 0.00227),
c("Anders", 0.001411),
c("Anssi", 0.001464),
c("Antero", 0.029891),
c("Anton", 0.002652),
c("Antti", 0.011971),
c("Ari", 0.006403),
c("Armas", 0.003609),
c("Arto", 0.004059),
c("Arttu", 0.00228),
c("Artturi", 0.001853),
c("Arvo", 0.001578),
c("Asko", 0.001363),
c("Atte", 0.001392),
c("Aukusti", 0.002011),
c("Aulis", 0.002725),
c("Benjamin", 0.002089),
c("Christian", 0.002142),
c("Daniel", 0.002919),
c("Edvard", 0.001248),
c("Eelis", 0.001359),
c("Eemeli", 0.004734),
c("Eemil", 0.002606),
c("Eerik", 0.001629),
c("Eero", 0.005572),
c("Eetu", 0.003098),
c("Einari", 0.002263),
c("Eino", 0.004304),
c("Elias", 0.005129),
c("Elmeri", 0.001817),
c("Emil", 0.003422),
c("Ensio", 0.006508),
c("Erik", 0.005296),
c("Erkki", 0.007568),
c("Esa", 0.0043),
c("Esko", 0.004194),
c("Hannu", 0.007429),
c("Harri", 0.004739),
c("Heikki", 0.011301),
c("Henri", 0.003282),
c("Henrik", 0.007534),
c("Henrikki", 0.001325),
c("Henry", 0.001412),
c("Hermanni", 0.00167),
c("Iisakki", 0.001193),
c("Ilari", 0.002866),
c("Ilkka", 0.003098),
c("Ilmari", 0.015056),
c("Ismo", 0.00148),
c("Jaakko", 0.008225),
c("Jalmari", 0.002645),
c("Jan", 0.002011),
c("Jani", 0.005117),
c("Janne", 0.006361),
c("Jari", 0.008664),
c("Jarkko", 0.002672),
c("Jarmo", 0.004396),
c("Jarno", 0.001681),
c("Jere", 0.002255),
c("Jesse", 0.002586),
c("Joel", 0.002105),
c("Johan", 0.003528),
c("Johannes", 0.028915),
c("Joni", 0.003244),
c("Joona", 0.002503),
c("Joonas", 0.003828),
c("Joonatan", 0.001565),
c("Jorma", 0.005147),
c("Jouko", 0.003962),
c("Jouni", 0.004093),
c("Juha", 0.011567),
c("Juhana", 0.001862),
c("Juhani", 0.061356),
c("Juho", 0.005642),
c("Jukka", 0.008652),
c("Julius", 0.00209),
c("Jussi", 0.004772),
c("Juuso", 0.002224),
c("Jyrki", 0.002127),
c("Kaarlo", 0.002073),
c("Kai", 0.001942),
c("Kalervo", 0.008502),
c("Kalevi", 0.021057),
c("Kalle", 0.003829),
c("Kari", 0.009761),
c("Karl", 0.001779),
c("Kasper", 0.001177),
c("Kauko", 0.002169),
c("Keijo", 0.002259),
c("Kim", 0.001172),
c("Kimmo", 0.003441),
c("Kristian", 0.011096),
c("Kullervo", 0.002234),
c("Kustaa", 0.001144),
c("Lasse", 0.002197),
c("Lassi", 0.001214),
c("Lauri", 0.00755),
c("Leevi", 0.002015),
c("Leo", 0.003319),
c("Markku", 0.00843),
c("Marko", 0.006297),
c("Markus", 0.009181),
c("Martti", 0.005521),
c("Matias", 0.013377),
c("Matti", 0.01756),
c("Mauno", 0.001189),
c("Mauri", 0.002098),
c("Miika", 0.001845),
c("Mika", 0.007765),
c("Mikael", 0.021621),
c("Mikko", 0.009719),
c("Miro", 0.001274),
c("Niilo", 0.002094),
c("Niklas", 0.002024),
c("Niko", 0.003908),
c("Oiva", 0.001202),
c("Olavi", 0.030903),
c("Oliver", 0.003026),
c("Olli", 0.003921),
c("Onni", 0.004513),
c("Oskar", 0.001185),
c("Oskari", 0.007745),
c("Osmo", 0.001531),
c("Ossi", 0.001591),
c("Otto", 0.002902),
c("Paavo", 0.00381),
c("Pasi", 0.004109),
c("Patrik", 0.001474),
c("Pauli", 0.003105),
c("Pekka", 0.017016),
c("Pentti", 0.006344),
c("Pertti", 0.004406),
c("Peter", 0.001704),
c("Petri", 0.00786),
c("Petteri", 0.015518),
c("Raimo", 0.004575),
c("Rainer", 0.001478),
c("Rasmus", 0.001715),
c("Rauno", 0.001688),
c("Reijo", 0.003919),
c("Reino", 0.002166),
c("Riku", 0.001803),
c("Risto", 0.004678),
c("Robert", 0.001478),
c("Roope", 0.001412),
c("Sakari", 0.013891),
c("Sami", 0.00587),
c("Samu", 0.001237),
c("Samuel", 0.00403),
c("Samuli", 0.004994),
c("Santeri", 0.00346),
c("Sebastian", 0.002863),
c("Seppo", 0.007305),
c("Simo", 0.002313),
c("Taisto", 0.001514),
c("Taneli", 0.00129),
c("Tapani", 0.02906),
c("Tapio", 0.024776),
c("Tauno", 0.001795),
c("Teemu", 0.004605),
c("Tero", 0.003188),
c("Teuvo", 0.001714),
c("Timo", 0.010557),
c("Toivo", 0.003649),
c("Tomi", 0.00341),
c("Tommi", 0.003191),
c("Toni", 0.003723),
c("Topias", 0.001645),
c("Tuomas", 0.005948),
c("Tuomo", 0.002739),
c("Tuukka", 0.001175),
c("Uolevi", 0.002879),
c("V\u00e4in\u00f6", 0.003176),
c("Valdemar", 0.00152),
c("Valtteri", 0.006312),
c("Veeti", 0.001673),
c("Veijo", 0.001517),
c("Veikko", 0.007525),
c("Veli", 0.004415),
c("Verneri", 0.001164),
c("Vesa", 0.003926),
c("Vilhelm", 0.001591),
c("Vilho", 0.002303),
c("Viljami", 0.003563),
c("Viljo", 0.00154),
c("Ville", 0.007025),
c("Yrj\u00f6", 0.001912)),
# List of most popular last names in Finland:
# https://www.avoindata.fi/data/en/dataset/none/resource/d25831d1-82a9-476f-8f7c-374c348efc14
last_names = list(
c("Aalto", 0.004189),
c("Aaltonen", 0.004828),
c("Aho", 0.003566),
c("Ahokas", 0.001182),
c("Ahola", 0.003697),
c("Ahonen", 0.005301),
c("Airaksinen", 0.001075),
c("Alanen", 0.001124),
c("Alanko", 0.001131),
c("Alatalo", 0.001424),
c("Andersson", 0.002447),
c("Antikainen", 0.001061),
c("Anttila", 0.004683),
c("Anttonen", 0.00121),
c("Aro", 0.00105),
c("Asikainen", 0.002),
c("Autio", 0.002187),
c("Auvinen", 0.001732),
c("Backman", 0.001331),
c("Berg", 0.001362),
c("Blomqvist", 0.001545),
c("Eklund", 0.001737),
c("Elo", 0.00113),
c("Eloranta", 0.00109),
c("Eriksson", 0.002454),
c("Erkkil\u00e4", 0.001406),
c("Eronen", 0.001765),
c("Eskelinen", 0.002041),
c("Eskola", 0.001747),
c("Forsman", 0.001077),
c("Gr\u00f6nroos", 0.001054),
c("Gustafsson", 0.001571),
c("Haapala", 0.001736),
c("Haapanen", 0.00132),
c("Haapaniemi", 0.001056),
c("Haataja", 0.001222),
c("Haavisto", 0.001782),
c("Hakala", 0.004682),
c("Hakkarainen", 0.00272),
c("H\u00e4kkinen", 0.002513),
c("Halme", 0.001566),
c("Halonen", 0.003495),
c("H\u00e4m\u00e4l\u00e4inen", 0.009001),
c("H\u00e4nninen", 0.003986),
c("Hannula", 0.001522),
c("Harju", 0.003153),
c("H\u00e4rk\u00f6nen", 0.002434),
c("Hartikainen", 0.002868),
c("Hautala", 0.001909),
c("Hautam\u00e4ki", 0.00165),
c("Haverinen", 0.001289),
c("Heikkil\u00e4", 0.006931),
c("Heikkinen", 0.008519),
c("Heino", 0.00296),
c("Heinonen", 0.007026),
c("Heiskanen", 0.003335),
c("Helenius", 0.001874),
c("Helin", 0.001682),
c("Helminen", 0.001458),
c("Henriksson", 0.001408),
c("Hietala", 0.002444),
c("Hietanen", 0.00184),
c("Hiltunen", 0.004889),
c("Hirvonen", 0.004428),
c("Hokkanen", 0.002165),
c("Holappa", 0.00105),
c("Holm", 0.001459),
c("Holmberg", 0.001217),
c("Holmstr\u00f6m", 0.001188),
c("Holopainen", 0.002501),
c("Honkanen", 0.00323),
c("Huhtala", 0.002066),
c("Huotari", 0.001845),
c("Huovinen", 0.001733),
c("Huttunen", 0.003632),
c("Huuskonen", 0.001163),
c("Hyt\u00f6nen", 0.001515),
c("Hyttinen", 0.001835),
c("Hyv\u00e4rinen", 0.002703),
c("Hyv\u00f6nen", 0.002406),
c("Ihalainen", 0.001044),
c("Ikonen", 0.00358),
c("Immonen", 0.003231),
c("Jaakkola", 0.002386),
c("J\u00e4\u00e4skel\u00e4inen", 0.002913),
c("Jaatinen", 0.001308),
c("Jalonen", 0.001474),
c("Jansson", 0.00146),
c("J\u00e4ntti", 0.00125),
c("J\u00e4rvel\u00e4", 0.001204),
c("J\u00e4rvenp\u00e4\u00e4", 0.001797),
c("J\u00e4rvi", 0.001061),
c("J\u00e4rvinen", 0.007928),
c("Jauhiainen", 0.001305),
c("Johansson", 0.003434),
c("Jokela", 0.002356),
c("Jokinen", 0.005951),
c("Juntunen", 0.002955),
c("Jussila", 0.002127),
c("Juvonen", 0.001677),
c("K\u00e4hk\u00f6nen", 0.00158),
c("Kaikkonen", 0.001253),
c("Kainulainen", 0.001727),
c("Kallio", 0.004876),
c("K\u00e4m\u00e4r\u00e4inen", 0.001118),
c("Kanerva", 0.001436),
c("Kangas", 0.002883),
c("Kankaanp\u00e4\u00e4", 0.001337),
c("Kantola", 0.001513),
c("Karhu", 0.00234),
c("Karhunen", 0.001157),
c("Kari", 0.001082),
c("Karjalainen", 0.006036),
c("K\u00e4rki", 0.001268),
c("K\u00e4rkk\u00e4inen", 0.003561),
c("Karlsson", 0.002809),
c("Karppinen", 0.003072),
c("Karttunen", 0.001799),
c("Karvinen", 0.001394),
c("Karvonen", 0.002385),
c("Kauppila", 0.00126),
c("Kauppinen", 0.003787),
c("Kein\u00e4nen", 0.001261),
c("Kemppainen", 0.003777),
c("Ker\u00e4nen", 0.002874),
c("Keskinen", 0.001651),
c("Keskitalo", 0.00109),
c("Ketola", 0.001792),
c("Kettunen", 0.003871),
c("Kilpel\u00e4inen", 0.001374),
c("Kinnunen", 0.006796),
c("Kiuru", 0.001089),
c("Kivel\u00e4", 0.002164),
c("Kivim\u00e4ki", 0.001619),
c("Kivinen", 0.0013),
c("Kiviniemi", 0.001402),
c("Kivist\u00f6", 0.001447),
c("Koistinen", 0.001988),
c("Koivisto", 0.004667),
c("Koivula", 0.002017),
c("Koivunen", 0.001881),
c("Kokko", 0.002672),
c("Kokkonen", 0.003128),
c("Kolehmainen", 0.002155),
c("Komulainen", 0.001657),
c("Konttinen", 0.001132),
c("Koponen", 0.003424),
c("Korhonen", 0.011042),
c("Korpela", 0.002431),
c("Korpi", 0.001281),
c("Kortelainen", 0.001539),
c("Koskela", 0.003733),
c("Koski", 0.003231),
c("Koskinen", 0.008414),
c("Kosonen", 0.00231),
c("Kovanen", 0.001198),
c("Kuisma", 0.001348),
c("Kujala", 0.002234),
c("Kukkonen", 0.002415),
c("Kulmala", 0.001901),
c("Kumpulainen", 0.001781),
c("Kuosmanen", 0.001577),
c("Kurki", 0.001386),
c("Kuronen", 0.001149),
c("Kuusela", 0.001972),
c("Kuusisto", 0.002479),
c("Kyll\u00f6nen", 0.001904),
c("Laakkonen", 0.00201),
c("Laakso", 0.00436),
c("Laaksonen", 0.004505),
c("L\u00e4hteenm\u00e4ki", 0.001609),
c("Lahti", 0.00373),
c("Lahtinen", 0.005427),
c("Laiho", 0.001374),
c("Laine", 0.008802),
c("Laitinen", 0.006223),
c("Lammi", 0.00109),
c("Lampinen", 0.002147),
c("Lankinen", 0.001053),
c("Lappalainen", 0.003902),
c("Lassila", 0.001343),
c("Latvala", 0.001139),
c("Laukkanen", 0.002981),
c("Laurila", 0.00268),
c("Lehikoinen", 0.001339),
c("Lehtim\u00e4ki", 0.001726),
c("Lehtinen", 0.007344),
c("Lehto", 0.004389),
c("Lehtola", 0.001536),
c("Lehtonen", 0.00786),
c("Leino", 0.002813),
c("Leinonen", 0.004891),
c("Lepist\u00f6", 0.001981),
c("Lepp\u00e4nen", 0.005224),
c("Leskinen", 0.002572),
c("Liimatainen", 0.001943),
c("Lilja", 0.00115),
c("Lindberg", 0.001978),
c("Lindfors", 0.001504),
c("Lindgren", 0.00175),
c("Lindholm", 0.003367),
c("Lindqvist", 0.002171),
c("Lindroos", 0.002225),
c("Lindstr\u00f6m", 0.002755),
c("Linna", 0.001114),
c("Lipponen", 0.00129),
c("Liukkonen", 0.001696),
c("Luoma", 0.00193),
c("Luukkonen", 0.001845),
c("M\u00e4\u00e4tt\u00e4", 0.003095),
c("M\u00e4enp\u00e4\u00e4", 0.00279),
c("M\u00e4kel\u00e4", 0.009299),
c("M\u00e4ki", 0.003044),
c("M\u00e4kinen", 0.009918),
c("Makkonen", 0.002549),
c("Malinen", 0.002249),
c("Manninen", 0.004752),
c("M\u00e4nnist\u00f6", 0.001155),
c("M\u00e4ntyl\u00e4", 0.001364),
c("Markkanen", 0.001624),
c("Martikainen", 0.002756),
c("Marttila", 0.001834),
c("Marttinen", 0.001083),
c("Matikainen", 0.00149),
c("Matilainen", 0.001526),
c("Mattila", 0.005845),
c("Mattsson", 0.001349),
c("Meril\u00e4inen", 0.001503),
c("Miettinen", 0.004877),
c("Mikkola", 0.003284),
c("Mikkonen", 0.00345),
c("Moilanen", 0.004065),
c("Moisio", 0.001273),
c("Mononen", 0.001237),
c("Muhonen", 0.001141),
c("Mustonen", 0.004238),
c("Myllym\u00e4ki", 0.001733),
c("Nevala", 0.001071),
c("Nevalainen", 0.002639),
c("Niemel\u00e4", 0.004065),
c("Niemi", 0.006993),
c("Nieminen", 0.009851),
c("Niiranen", 0.001315),
c("Nikula", 0.001193),
c("Niskanen", 0.003346),
c("Nissinen", 0.002092),
c("Nousiainen", 0.002075),
c("Nurmi", 0.004112),
c("Nurminen", 0.003196),
c("Nuutinen", 0.001781),
c("Nyberg", 0.001381),
c("Nyk\u00e4nen", 0.002561),
c("Nylund", 0.001545),
c("Nyman", 0.003435),
c("Oikarinen", 0.00114),
c("Oinonen", 0.001349),
c("Ojala", 0.005237),
c("Ojanen", 0.001396),
c("Oksanen", 0.003372),
c("Ollikainen", 0.001631),
c("Ollila", 0.001614),
c("P\u00e4\u00e4kk\u00f6nen", 0.001404),
c("Paananen", 0.002837),
c("Paavilainen", 0.001028),
c("Paavola", 0.001687),
c("Pajunen", 0.001396),
c("Pakarinen", 0.001818),
c("Palom\u00e4ki", 0.001161),
c("Parkkinen", 0.001273),
c("Partanen", 0.003879),
c("Parviainen", 0.002908),
c("Pasanen", 0.002364),
c("Pehkonen", 0.001178),
c("Pekkala", 0.001172),
c("Pekkarinen", 0.0011),
c("Pelkonen", 0.001933),
c("Peltola", 0.003401),
c("Peltonen", 0.004111),
c("Peltoniemi", 0.001325),
c("Pennanen", 0.001857),
c("Penttil\u00e4", 0.001723),
c("Penttinen", 0.001875),
c("Per\u00e4l\u00e4", 0.001592),
c("Pesonen", 0.003534),
c("Pietil\u00e4", 0.001874),
c("Piirainen", 0.001336),
c("Pirinen", 0.001318),
c("Pitk\u00e4nen", 0.004831),
c("Pohjola", 0.001266),
c("P\u00f6ll\u00e4nen", 0.001097),
c("Puhakka", 0.001413),
c("Pulkkinen", 0.003995),
c("Puranen", 0.001053),
c("Puustinen", 0.001385),
c("Raatikainen", 0.001244),
c("R\u00e4is\u00e4nen", 0.002146),
c("Rajala", 0.002963),
c("Ranta", 0.002422),
c("Rantala", 0.004243),
c("Rantanen", 0.006076),
c("R\u00e4s\u00e4nen", 0.004444),
c("R\u00e4ty", 0.001319),
c("Rauhala", 0.001391),
c("Rautiainen", 0.00292),
c("Rautio", 0.002231),
c("Reinikainen", 0.001112),
c("Repo", 0.001805),
c("Riihim\u00e4ki", 0.001097),
c("Riikonen", 0.001838),
c("Rinne", 0.002123),
c("Rintala", 0.001596),
c("Rissanen", 0.003116),
c("Ronkainen", 0.001757),
c("R\u00f6nkk\u00f6", 0.001111),
c("Rossi", 0.001203),
c("Ruotsalainen", 0.002752),
c("Ruuskanen", 0.001251),
c("Rytk\u00f6nen", 0.00144),
c("Ryyn\u00e4nen", 0.00112),
c("Saarela", 0.002292),
c("Saari", 0.003871),
c("Saarinen", 0.007247),
c("Saastamoinen", 0.001741),
c("Sainio", 0.001224),
c("Sallinen", 0.001148),
c("Salmela", 0.002572),
c("Salmi", 0.003705),
c("Salminen", 0.007146),
c("Salo", 0.006336),
c("Salomaa", 0.001099),
c("Salonen", 0.006757),
c("Savolainen", 0.005448),
c("Sepp\u00e4", 0.001142),
c("Sepp\u00e4l\u00e4", 0.004007),
c("Sepp\u00e4nen", 0.003731),
c("Sihvonen", 0.001053),
c("Sillanp\u00e4\u00e4", 0.002264),
c("Silvennoinen", 0.001614),
c("Simola", 0.001116),
c("Simonen", 0.001049),
c("Sipil\u00e4", 0.001582),
c("Sir\u00e9n", 0.001129),
c("Sirvi\u00f6", 0.001089),
c("Sj\u00f6blom", 0.001119),
c("Soini", 0.001102),
c("Soininen", 0.001422),
c("Suhonen", 0.001834),
c("Suomalainen", 0.001609),
c("Suominen", 0.003582),
c("Sutinen", 0.001056),
c("Syrj\u00e4l\u00e4", 0.001196),
c("T\u00e4htinen", 0.001028),
c("Taipale", 0.001378),
c("Takala", 0.001797),
c("Tamminen", 0.002461),
c("Tanskanen", 0.001536),
c("Tarvainen", 0.001396),
c("Taskinen", 0.001633),
c("Tervo", 0.001419),
c("Tiainen", 0.00234),
c("Tiihonen", 0.001149),
c("Tikka", 0.001325),
c("Tikkanen", 0.00266),
c("Timonen", 0.002211),
c("Tirkkonen", 0.001193),
c("Toivanen", 0.002668),
c("Toivonen", 0.004311),
c("Tolonen", 0.002122),
c("Tolvanen", 0.001917),
c("Tuomi", 0.001608),
c("Tuominen", 0.006098),
c("Tuovinen", 0.001894),
c("Turpeinen", 0.001528),
c("Turunen", 0.006523),
c("Uotila", 0.001053),
c("Uusitalo", 0.002687),
c("V\u00e4\u00e4n\u00e4nen", 0.002319),
c("Vainio", 0.003358),
c("V\u00e4is\u00e4nen", 0.004904),
c("V\u00e4lim\u00e4ki", 0.001587),
c("Valkama", 0.001139),
c("Valkonen", 0.001248),
c("Valtonen", 0.002171),
c("Varis", 0.001436),
c("Vartiainen", 0.002039),
c("V\u00e4yrynen", 0.001426),
c("Ven\u00e4l\u00e4inen", 0.001262),
c("Vesterinen", 0.001259),
c("Viitala", 0.001642),
c("Viitanen", 0.002647),
c("Viljanen", 0.001859),
c("Virta", 0.002228),
c("Virtanen", 0.01083),
c("Voutilainen", 0.001853),
c("Vuorela", 0.001156),
c("Vuori", 0.001701),
c("Vuorinen", 0.003188),
c("Ylinen", 0.00105),
c("Ylitalo", 0.001438),
c("Yl\u00f6nen", 0.00125))
)
)
# bank -------------------------
bank_fi_FI = R6Class(
"bank_fi_FI",
inherit = bank_init,
cloneable = FALSE,
private = list(
bban_format = '################',
country_code = 'FI'
)
)
# company -----------------------------------
company_fi_FI = R6Class(
"company_fi_FI",
inherit = company_init,
cloneable = FALSE,
private = list(
first_names = (person_fi_FI$new())$.__enclos_env__$private$first_names,
last_names = (person_fi_FI$new())$.__enclos_env__$private$last_names,
first_name = (person_fi_FI$new())$first_name,
last_name = (person_fi_FI$new())$last_name,
formats = c(
'{last_name} {company_suffix}',
'{last_name} {last_name} {company_suffix}',
'{last_name} {last_name} {company_suffix}',
'{last_name}'),
company_suffixes = c(
'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry')
),
public = list(
company_business_id = function() {
# Returns Finnish company Business Identity Code (y-tunnus).
# Format is 8 digits - e.g. FI99999999,[8] last digit is a check
# digit utilizing MOD 11-2. The first digit is zero for some old
# organizations. This function provides current codes starting with
# non-zero.
calculate_checksum = function(x){
# Calculate the checksum using mod 11,2 method
factors = c(7, 9, 10, 5, 8, 4, 2)
sum_ = sum(x * factors)
if (sum_ %% 11 == 0) return("0")
else return(as.character(11 - (sum_ %% 11)))
}
first_digit = private$random_digit_not_null()
body = as.integer(c(first_digit,
str_split(private$bothify('######'),"")[[1]]))
cs = calculate_checksum(body)
return(str_c(str_c(body, collapse = ""), cs, sep = "-"))
},
company_vat = function(){
# Returns Finnish VAT identification number (Arvonlisaveronumero).
# This can be calculated from company business identity code by
# adding prefix "FI" and removing dash before checksum.
convert_to_vat = function(x){
# Convert business id to VATIN
return(str_c("FI", str_replace_all(x, "-", "")))
}
return(convert_to_vat(self$company_business_id()))
}
)
)
# address -----------------------------
address_fi_FI = R6Class(
"address_fi_FI",
inherit = address_init,
cloneable = FALSE,
private = list(
first_names = (person_fi_FI$new())$.__enclos_env__$private$first_names,
last_names = (person_fi_FI$new())$.__enclos_env__$private$last_names,
first_name = (person_fi_FI$new())$first_name,
last_name = (person_fi_FI$new())$last_name,
building_number_formats = c('###', '##', '#'),
postcode_formats = '#####',
city_formats = '{city_name}',
street_name_formats = '{street_prefix}{street_suffix}',
street_address_formats = '{street_name} {building_number}',
address_formats = "{street_address}\n{postcode} {city}",
# Data from:
# https://www.avoindata.fi/data/en/dataset/kunnat/resource/b1cb9870-191f-4616-9c53-5388b7ca6beb
cities = c(
"Alaj\u00e4rvi",
"Alavieska",
"Alavus",
"Asikkala",
"Askola",
"Aura",
"Akaa",
"Br\u00e4nd\u00f6",
"Ecker\u00f6",
"Enonkoski",
"Enonteki\u00f6",
"Espoo",
"Eura",
"Eurajoki",
"Evij\u00e4rvi",
"Finstr\u00f6m",
"Forssa",
"F\u00f6gl\u00f6",
"Geta",
"Haapaj\u00e4rvi",
"Haapavesi",
"Hailuoto",
"Halsua",
"Hamina",
"Hammarland",
"Hankasalmi",
"Hanko",
"Harjavalta",
"Hartola",
"Hattula",
"Hausj\u00e4rvi",
"Hein\u00e4vesi",
"Helsinki",
"Vantaa",
"Hirvensalmi",
"Hollola",
"Honkajoki",
"Huittinen",
"Humppila",
"Hyrynsalmi",
"Hyvink\u00e4\u00e4",
"H\u00e4meenkyr\u00f6",
"H\u00e4meenlinna",
"Heinola",
"Ii",
"Iisalmi",
"Iitti",
"Ikaalinen",
"Ilmajoki",
"Ilomantsi",
"Inari",
"Inkoo",
"Isojoki",
"Isokyr\u00f6",
"Imatra",
"Janakkala",
"Joensuu",
"Jokioinen",
"Jomala",
"Joroinen",
"Joutsa",
"Juuka",
"Juupajoki",
"Juva",
"Jyv\u00e4skyl\u00e4",
"J\u00e4mij\u00e4rvi",
"J\u00e4ms\u00e4",
"J\u00e4rvenp\u00e4\u00e4",
"Kaarina",
"Kaavi",
"Kajaani",
"Kalajoki",
"Kangasala",
"Kangasniemi",
"Kankaanp\u00e4\u00e4",
"Kannonkoski",
"Kannus",
"Karijoki",
"Karkkila",
"Karstula",
"Karvia",
"Kaskinen",
"Kauhajoki",
"Kauhava",
"Kauniainen",
"Kaustinen",
"Keitele",
"Kemi",
"Keminmaa",
"Kempele",
"Kerava",
"Keuruu",
"Kihni\u00f6",
"Kinnula",
"Kirkkonummi",
"Kitee",
"Kittil\u00e4",
"Kiuruvesi",
"Kivij\u00e4rvi",
"Kokem\u00e4ki",
"Kokkola",
"Kolari",
"Konnevesi",
"Kontiolahti",
"Korsn\u00e4s",
"Koski Tl",
"Kotka",
"Kouvola",
"Kristiinankaupunki",
"Kruunupyy",
"Kuhmo",
"Kuhmoinen",
"Kumlinge",
"Kuopio",
"Kuortane",
"Kurikka",
"Kustavi",
"Kuusamo",
"Outokumpu",
"Kyyj\u00e4rvi",
"K\u00e4rk\u00f6l\u00e4",
"K\u00e4rs\u00e4m\u00e4ki",
"K\u00f6kar",
"Kemij\u00e4rvi",
"Kemi\u00f6nsaari",
"Lahti",
"Laihia",
"Laitila",
"Lapinlahti",
"Lappaj\u00e4rvi",
"Lappeenranta",
"Lapinj\u00e4rvi",
"Lapua",
"Laukaa",
"Lemi",
"Lemland",
"Lemp\u00e4\u00e4l\u00e4",
"Lepp\u00e4virta",
"Lestij\u00e4rvi",
"Lieksa",
"Lieto",
"Liminka",
"Liperi",
"Loimaa",
"Loppi",
"Loviisa",
"Luhanka",
"Lumijoki",
"Lumparland",
"Luoto",
"Luum\u00e4ki",
"Lohja",
"Parainen",
"Maalahti",
"Maarianhamina",
"Marttila",
"Masku",
"Merij\u00e4rvi",
"Merikarvia",
"Miehikk\u00e4l\u00e4",
"Mikkeli",
"Muhos",
"Multia",
"Muonio",
"Mustasaari",
"Muurame",
"Myn\u00e4m\u00e4ki",
"Myrskyl\u00e4",
"M\u00e4nts\u00e4l\u00e4",
"M\u00e4ntyharju",
"M\u00e4ntt\u00e4-Vilppula",
"Naantali",
"Nakkila",
"Nivala",
"Nokia",
"Nousiainen",
"Nurmes",
"Nurmij\u00e4rvi",
"N\u00e4rpi\u00f6",
"Orimattila",
"Orip\u00e4\u00e4",
"Orivesi",
"Oulainen",
"Oulu",
"Padasjoki",
"Paimio",
"Paltamo",
"Parikkala",
"Parkano",
"Pelkosenniemi",
"Perho",
"Pertunmaa",
"Pet\u00e4j\u00e4vesi",
"Pieks\u00e4m\u00e4ki",
"Pielavesi",
"Pietarsaari",
"Peders\u00f6ren kunta",
"Pihtipudas",
"Pirkkala",
"Polvij\u00e4rvi",
"Pomarkku",
"Pori",
"Pornainen",
"Posio",
"Pudasj\u00e4rvi",
"Pukkila",
"Punkalaidun",
"Puolanka",
"Puumala",
"Pyht\u00e4\u00e4",
"Pyh\u00e4joki",
"Pyh\u00e4j\u00e4rvi",
"Pyh\u00e4nt\u00e4",
"Pyh\u00e4ranta",
"P\u00e4lk\u00e4ne",
"P\u00f6yty\u00e4",
"Porvoo",
"Raahe",
"Raisio",
"Rantasalmi",
"Ranua",
"Rauma",
"Rautalampi",
"Rautavaara",
"Rautj\u00e4rvi",
"Reisj\u00e4rvi",
"Riihim\u00e4ki",
"Ristij\u00e4rvi",
"Rovaniemi",
"Ruokolahti",
"Ruovesi",
"Rusko",
"R\u00e4\u00e4kkyl\u00e4",
"Raasepori",
"Saarij\u00e4rvi",
"Salla",
"Salo",
"Saltvik",
"Sauvo",
"Savitaipale",
"Savonlinna",
"Savukoski",
"Sein\u00e4joki",
"Sievi",
"Siikainen",
"Siikajoki",
"Siilinj\u00e4rvi",
"Simo",
"Sipoo",
"Siuntio",
"Sodankyl\u00e4",
"Soini",
"Somero",
"Sonkaj\u00e4rvi",
"Sotkamo",
"Sottunga",
"Sulkava",
"Sund",
"Suomussalmi",
"Suonenjoki",
"Sysm\u00e4",
"S\u00e4kyl\u00e4",
"Vaala",
"Sastamala",
"Siikalatva",
"Taipalsaari",
"Taivalkoski",
"Taivassalo",
"Tammela",
"Tampere",
"Tervo",
"Tervola",
"Teuva",
"Tohmaj\u00e4rvi",
"Toholampi",
"Toivakka",
"Tornio",
"Turku",
"Pello",
"Tuusniemi",
"Tuusula",
"Tyrn\u00e4v\u00e4",
"Ulvila",
"Urjala",
"Utaj\u00e4rvi",
"Utsjoki",
"Uurainen",
"Uusikaarlepyy",
"Uusikaupunki",
"Vaasa",
"Valkeakoski",
"Valtimo",
"Varkaus",
"Vehmaa",
"Vesanto",
"Vesilahti",
"Veteli",
"Vierem\u00e4",
"Vihti",
"Viitasaari",
"Vimpeli",
"Virolahti",
"Virrat",
"V\u00e4rd\u00f6",
"V\u00f6yri",
"Ylitornio",
"Ylivieska",
"Yl\u00f6j\u00e4rvi",
"Yp\u00e4j\u00e4",
"\u00c4ht\u00e4ri",
"\u00c4\u00e4nekoski"
),
countries = c(
"Afganistan",
"Alankomaat",
"Albania",
"Algeria",
"Andorra",
"Angola",
"Antigua ja Barbuda",
"Argentiina",
"Armenia",
"Australia",
"Azerbaid\u017ean",
"Bahama",
"Bahrain",
"Bangladesh",
"Barbados",
"Belgia",
"Belize",
"Benin",
"Bhutan",
"Bolivia",
"Bosnia ja Hertsegovina",
"Botswana",
"Brasilia",
"Brunei",
"Bulgaria",
"Burkina",
"Faso",
"Burundi",
"Chile",
"Costa",
"Rica",
"Djibouti",
"Dominica",
"Dominikaaninen tasavalta",
"Ecuador",
"Egypti",
"El",
"Salvador",
"Eritrea",
"Espanja",
"Etel\u00e4-Afrikka",
"Korean tasavalta",
"Etel\u00e4-Sudan",
"Etiopia",
"Fid\u017ei",
"Filippiinit",
"Gabon",
"Gambia",
"Georgia",
"Ghana",
"Grenada",
"Guatemala",
"Guinea-Bissau",
"Guinea",
"Guyana",
"Haiti",
"Honduras",
"Indonesia",
"Intia",
"Irak",
"Iran",
"Irlanti",
"Islanti",
"Israel",
"Italia",
"It\u00e4-Timor",
"It\u00e4valta",
"Jamaika",
"Japani",
"Jemen",
"Jordania",
"Kambod\u017ea",
"Kamerun",
"Kanada",
"Kap",
"Verde",
"Kazakstan",
"Kenia",
"Keski-Afrikan tasavalta",
"Kiina",
"Kirgisia",
"Kiribati",
"Kolumbia",
"Komorit",
"Kongon demokraattinen tasavalta",
"Kongon tasavalta",
"Kosovo",
"Kreikka",
"Kroatia",
"Kuuba",
"Kuwait",
"Kypros",
"Laos",
"Latvia",
"Lesotho",
"Libanon",
"Liberia",
"Libya",
"Liechtenstein",
"Liettua",
"Luxemburg",
"Madagaskar",
"Makedonia",
"Malawi",
"Malediivit",
"Malesia",
"Mali",
"Malta",
"Marokko",
"Marshallinsaaret",
"Mauritania",
"Mauritius",
"Meksiko",
"Mikronesia",
"Moldova",
"Monaco",
"Mongolia",
"Montenegro",
"Mosambik",
"Myanmar",
"Namibia",
"Nauru",
"Nepal",
"Nicaragua",
"Nigeria",
"Niger",
"Norja",
"Norsunluurannikko",
"Oman",
"Pakistan",
"Palau",
"Panama",
"Papua-Uusi-Guinea",
"Paraguay",
"Peru",
"Korean demokraattinen kansantasavalta",
"Portugali",
"Puola",
"P\u00e4iv\u00e4ntasaajan Guinea",
"Qatar",
"Ranska",
"Romania",
"Ruanda",
"Ruotsi",
"Saint Kitts ja Nevis",
"Saint Lucia",
"Saint Vincent ja Grenadiinit",
"Saksa",
"Salomonsaaret",
"Sambia",
"Samoa",
"San Marino",
"S\u00e3o Tom\u00e9 ja Pr\u00edncipe",
"Saudi-Arabia",
"Senegal",
"Serbia",
"Seychellit",
"Sierra",
"Leone",
"Singapore",
"Slovakia",
"Slovenia",
"Somalia",
"Sri",
"Lanka",
"Sudan",
"Suomi",
"Suriname",
"Swazimaa",
"Sveitsi",
"Syyria",
"Tad\u017eikistan",
"Tansania",
"Tanska",
"Thaimaa",
"Togo",
"Tonga",
"Trinidad ja Tobago",
"T\u0161ad",
"T\u0161ekki",
"Tunisia",
"Turkki",
"Turkmenistan",
"Tuvalu",
"Uganda",
"Ukraina",
"Unkari",
"Uruguay",
"Uusi-Seelanti",
"Uzbekistan",
"Valko-Ven\u00e4j\u00e4",
"Vanuatu",
"Vatikaanivaltio",
"Venezuela",
"Ven\u00e4j\u00e4",
"Vietnam",
"Viro",
"Yhdistyneet arabiemiirikunnat",
"Yhdistynyt kuningaskunta",
"Yhdysvallat",
"Zimbabwe"
),
states = c(
"Turun ja Porin l\u00e4\u00e4ni",
"Uudenmaan ja H\u00e4meen l\u00e4\u00e4ni",
"Pohjanmaan l\u00e4\u00e4ni",
"Viipurin ja Savonlinnan l\u00e4\u00e4ni",
"K\u00e4kisalmen l\u00e4\u00e4ni",
"Savonlinnan ja Kymenkartanon l\u00e4\u00e4ni",
"Kymenkartanon ja Savon l\u00e4\u00e4ni",
"Vaasan l\u00e4\u00e4ni",
"Oulun l\u00e4\u00e4ni",
"Kymenkartanon l\u00e4\u00e4ni",
"Savon ja Karjalan l\u00e4\u00e4ni",
"Viipurin l\u00e4\u00e4ni",
"Uudenmaan l\u00e4\u00e4ni",
"H\u00e4meen l\u00e4\u00e4ni",
"Mikkelin l\u00e4\u00e4ni",
"Kuopion l\u00e4\u00e4ni",
"Ahvenanmaan l\u00e4\u00e4ni",
"Petsamon l\u00e4\u00e4ni",
"Lapin l\u00e4\u00e4ni",
"Kymen l\u00e4\u00e4ni",
"Keski-Suomen l\u00e4\u00e4ni",
"Pohjois-Karjalan l\u00e4\u00e4ni",
"Etel\u00e4-Suomen l\u00e4\u00e4ni",
"L\u00e4nsi-Suomen l\u00e4\u00e4ni",
"It\u00e4-Suomen l\u00e4\u00e4ni",
"",
"Turun ja Porin l\u00e4\u00e4ni",
"Uudenmaan ja H\u00e4meen l\u00e4\u00e4ni",
"Pohjanmaan l\u00e4\u00e4ni",
"Viipurin ja Savonlinnan l\u00e4\u00e4ni",
"K\u00e4kisalmen l\u00e4\u00e4ni",
"Savonlinnan ja Kymenkartanon l\u00e4\u00e4ni",
"Kymenkartanon ja Savon l\u00e4\u00e4ni",
"Vaasan l\u00e4\u00e4ni",
"Oulun l\u00e4\u00e4ni",
"Kymenkartanon l\u00e4\u00e4ni",
"Savon ja Karjalan l\u00e4\u00e4ni",
"Viipurin l\u00e4\u00e4ni",
"Uudenmaan l\u00e4\u00e4ni",
"H\u00e4meen l\u00e4\u00e4ni",
"Mikkelin l\u00e4\u00e4ni",
"Kuopion l\u00e4\u00e4ni",
"Ahvenanmaan l\u00e4\u00e4ni",
"Petsamon l\u00e4\u00e4ni",
"Lapin l\u00e4\u00e4ni",
"Kymen l\u00e4\u00e4ni",
"Keski-Suomen l\u00e4\u00e4ni",
"Pohjois-Karjalan l\u00e4\u00e4ni",
"Etel\u00e4-Suomen l\u00e4\u00e4ni",
"L\u00e4nsi-Suomen l\u00e4\u00e4ni",
"It\u00e4-Suomen l\u00e4\u00e4ni"
),
street_suffixes = c('tie', 'katu', 'polku', 'kuja', 'bulevardi'),
# Prefixes parsed from a street list of Helsinki:
# http://kartta.hel.fi/ws/geoserver/avoindata/wfs?outputFormat=application/json&REQUEST=GetFeature&typeNames=avoindata:Helsinki_osoiteluettelo
street_prefixes = c(
"Adolf Lindforsin ",
"Agnes Sj\u00f6bergin ",
"Agnetan",
"Agricolan",
"Ahom\u00e4en",
"Ahvenkosken",
"Aidasm\u00e4en",
"Agroksen",
"Agronomin",
"Ahdekaunokin",
"Bertel Jungin ",
"Bertha Pauligin ",
"Betlehemin",
"Betoni",
"Biologin",
"Birger Kaipiaisen ",
"Bysantin",
"B\u00f6staksen",
"Bengalin",
"Benktan",
"Bergan",
"Caloniuksen",
"Capellan puisto",
"Castr\u00e9nin",
"Chydeniuksen",
"Cygnaeuksen",
"Dagmarin",
"Damaskuksen",
"Degermosan",
"Disan",
"Dosentin",
"Dunckerin",
"D\u00f6belnin",
"Ehrensv\u00e4rdin",
"Eino Leinon ",
"Elim\u00e4en",
"Elisabeth Kochin ",
"Eljaksen",
"Elon",
"Elon",
"Edelfeltin",
"Eduskunta",
"Eerik Pyh\u00e4n ",
"Franz\u00e9nin",
"Fredrikin",
"Freesen",
"Fabianin",
"Fagotti",
"Fahlanderin puisto",
"Fallin",
"Fallkullan",
"Fallpakan",
"Fastb\u00f6len",
"Gadolinin",
"Gneissi",
"Granfeltin",
"Gunillan",
"Gunnel Nymanin ",
"Graniitti",
"Gustav Pauligin ",
"Gyld\u00e9nin",
"Gotlannin",
"Haapa",
"Haagan pappilan",
"Haahka",
"Haakoninlahden",
"Haaksi",
"Hankasuon",
"Hannukselan",
"Harakkamyllyn",
"Harava",
"Harbon",
"Ilmattaren",
"Ilom\u00e4en",
"Ilotulitus",
"Iltaruskon",
"Iltat\u00e4hden",
"Ilves",
"Immolan",
"Ilkan",
"Ida Ekmanin ",
"Ies",
"J\u00e4lsi",
"J\u00e4ms\u00e4n",
"J\u00e4nk\u00e4",
"J\u00e4nne",
"J\u00e4rk\u00e4le",
"J\u00e4tk\u00e4saaren",
"J\u00e4ttil\u00e4isen",
"Jyv\u00e4",
"J\u00e4gerhornin",
"J\u00e4k\u00e4l\u00e4",
"Kukkaniityn",
"Kolsin",
"Kolu",
"Kolvi",
"Kuhankeitt\u00e4j\u00e4n",
"Katajaharjun",
"Kiit\u00e4j\u00e4n",
"Kilpolan",
"Kimalais",
"Kimmon",
"Laajasalon",
"Laakavuoren",
"Lemun",
"Lentokapteenin ",
"Lepolan",
"Louhen",
"Louhikko",
"Lukkarim\u00e4en",
"Laurinniityn",
"Lautamiehen",
"Mamsellimyllyn",
"Mannerheimin",
"Maanmittarin",
"Maapadon",
"Maa",
"Maasalon",
"Maas\u00e4lv\u00e4n",
"Maatullin",
"Malminkartanon",
"Maneesi",
"Niittyl\u00e4n",
"Niemi",
"Niitynper\u00e4n",
"Nikon",
"Nils Westermarckin ",
"Nordenski\u00f6ldin",
"Nelikko",
"Neon",
"Nervanderin",
"Neulapadon",
"Ostos",
"Orapihlaja",
"Oras",
"Orava",
"Osmon",
"Osuuskunnan",
"Orisaaren",
"Ormus",
"Orvokki",
"Oterman",
"Pore",
"Porin",
"Porkkalan",
"Py\u00f6r\u00f6kiven",
"Puusep\u00e4n",
"Puuska",
"Pohjolan",
"Poikasaarten",
"Purjetuulen",
"Puroniityn",
"Rukkilan",
"Ruko",
"Rukoushuoneen",
"Runebergin",
"Runoilijan",
"Runokyl\u00e4n",
"Runonlaulajan",
"Rantavaraston",
"Rapakiven",
"Rapolan",
"Santerlan",
"Saparon",
"Sapilas",
"Saram\u00e4en",
"Saanatunturin",
"Sade",
"Sahaajan",
"Salakka",
"Salama",
"Salava",
"Tuomarinkyl\u00e4n",
"Tuulilasin",
"Taavetti Laitisen ",
"Taavin",
"Tahti",
"Taimiston",
"Tukkisillan",
"Tuohikoivun",
"Tyynel\u00e4n",
"Tyynylaavan",
"Uussillan",
"Urheilu",
"Urkurin",
"Urpu",
"Uskalikon",
"Usva",
"Uudenkaupungin",
"Uunilinnun",
"Uunisep\u00e4n",
"Uurtajan",
"Vanha Raja",
"Veropellon",
"Ver\u00e4j\u00e4m\u00e4en",
"Vesakko",
"Vesalan",
"Vellikellon",
"Verkko",
"Verso",
"Vaakalinnun",
"Vaarna",
"Wavulinin",
"Walentin Chorellin ",
"Wallinin",
"Waseniuksen puisto",
"Wecksellin",
"Willebrandin",
"Winqvistin",
"W\u00e4in\u00f6 Aaltosen ",
"Werner Wir\u00e9nin ",
"Yhteiskoulun",
"Ylipalon",
"Yll\u00e4stunturin",
"Yl\u00e4-Fallin ",
"Yl\u00e4kasken",
"Yl\u00e4nk\u00f6",
"Yl\u00e4tuvan",
"Yrj\u00f6-Koskisen ",
"Yrj\u00f6n",
"Yrttimaan",
"Zaidan"
)
),
public = list(
street_prefix = function(){
return(private$random_element(private$street_prefixes))
},
city_name = function(){
return(private$random_element(private$cities))
},
state = function(){
return(private$random_element(private$states))
}
)
)
# internet --------------------------------
internet_fi_FI = R6Class(
"internet_fi_FI",
inherit = internet_en_US,
cloneable = FALSE,
private = list(
free_email_domains = c(
'gmail.com', 'googlemail.com', 'hotmail.com', 'suomi24.fi',
'kolumbus.fi', 'luukku.com', 'surffi.net'),
tlds = c('com', 'com', 'com', 'fi', 'fi', 'net', 'org')
)
)
# job -------------------------------------
job_fi_FI = R6Class(
"job_fi_FI",
inherit = job_init,
cloneable = FALSE,
private = list(
jobs = c(
"Agrologi",
"Aikuiskoulutusjohtaja",
"Aineenopettaja",
"Ajoj\u00e4rjestelij\u00e4",
"Akatemian tutkijatohtori",
"Aktuaari",
"Alakoulujen apulaisrehtori",
"Alikersantti",
"Alkoholiasiain ylitarkastaja",
"Back office asiantuntija",
"Ballistikko",
"Bioanalyytikko",
"Brand manager",
"Budjettiassistentti",
"Business controller",
"Cc-yritysneuvoja",
"Cert-fi -yksik\u00f6n p\u00e4\u00e4llikk\u00f6",
"Communication officer",
"Consul",
"Counsellor",
"Data-analyytikko",
"Dekaanin sihteeri",
"Dieettikeitt\u00e4j\u00e4",
"Digitaalisen kokeen toteuttaja",
"Diplomi-insin\u00f6\u00f6ri",
"Dokumentoija",
"Dosentti",
"Eakr-koordinaattori",
"Editoija",
"Edunvalvontasihteeri",
"Egr-ohjaaja",
"Ekokampuskoordinaattori",
"Elektroniikka-asentaja",
"Elinkeinop\u00e4\u00e4llikk\u00f6",
"Elokuvakonemestari",
"Elputeknikko",
"El\u00e4inl\u00e4\u00e4kint\u00f6neuvos",
"Faktori",
"Farmakologi",
"Fidipro-professori",
"Filmiteknikko",
"Financial controller",
"Floristi",
"Fysioterapeutti",
"Fyysikko",
"Gemmologi",
"Gentax-j\u00e4rjestelm\u00e4asiantuntija",
"Geofyysikko",
"Gis-asiantuntija",
"Gm huto p\u00e4\u00e4k\u00e4ytt\u00e4j\u00e4",
"Graafikko",
"Haastattelija",
"Hakukoordinaattori",
"Hallimestari",
"Hammashoitaja",
"Hankearkkitehti",
"Harjaantumisopetuksen erityisluokanopettaja",
"Havainnontarkastaja",
"Helikopterihuoltoaliupseeri",
"Henkikirjoittaja",
"Johtava kuluttajaoikeusneuvoja",
"Ict-arkkitehti",
"Ihmisoikeuskeskuksen johtaja",
"Iktyonomi",
"Ilma-aluksen p\u00e4\u00e4llikk\u00f6",
"Iltap\u00e4iv\u00e4kerhon ohjaaja",
"Immunologi",
"Info-palvelupisteen hoitaja",
"Innoittaja",
"Jakeluvastaava",
"Jalkav\u00e4en tarkastaja",
"Jaoksen johtaja",
"Jatkokoulutettava el\u00e4inl\u00e4\u00e4k\u00e4ri",
"Jhs-projektip\u00e4\u00e4llikk\u00f6",
"Johdon asiantuntija",
"Joukkoliikenneasiantuntija",
"Julkaisu- ja markkinointisuunnittelija",
"Junamies",
"Juontaja",
"Kaapeli-insin\u00f6\u00f6ri",
"Kabinettisihteeri",
"Kadettikoulun johtaja",
"Kahvila-apulainen",
"Kairaaja",
"Kalabiologi",
"Kampanjap\u00e4\u00e4llikk\u00f6",
"Kanavanhoitaja",
"Kapellimestari",
"Karjamestari",
"Laadunvarmistuksen asiantuntija",
"Laboraattori",
"Laillisuusvalvontasihteeri",
"Laki- ja henkil\u00f6st\u00f6asiainjohtaja",
"Lapsiasiavaltuutettu",
"Laskennan kehitt\u00e4misp\u00e4\u00e4llikk\u00f6",
"Lataamoinsin\u00f6\u00f6ri",
"Lautakuntasihteeri",
"Lavastaja",
"Maa- ja vesirakennusty\u00f6ntekij\u00e4",
"Maisema-arkkitehti",
"Majakkateknikko",
"Maksatusasiantuntija",
"Malli",
"Mareografihoitaja",
"Mastoteknikko",
"Matemaatikko",
"Media- ja kulttuurikoordinaattori",
"Neuropsykologi",
"Nimikkeist\u00f6p\u00e4\u00e4llikk\u00f6",
"Nosturinkuljettaja",
"Notaari",
"Nukutusl\u00e4\u00e4k\u00e4ri",
"Numerointisihteeri",
"Nuorempi konstaapeli",
"N\u00e4ytearkistonhoitaja",
"N\u00e4\u00f6nk\u00e4yt\u00f6n asiantuntija",
"Obduktiokoordinaattori",
"Observaattori",
"Offset-monistaja",
"Ohjaaja",
"Oikaisulautakunnan puheenjohtaja",
"Oleskelulupak\u00e4sittelij\u00e4",
"Omistajaohjausyksik\u00f6n johtaja",
"Ompelija",
"Opas",
"Operaatiop\u00e4\u00e4llikk\u00f6",
"Padonhoitaja",
"Paikallisjohtaja",
"Pakolaiskeskuksen johtaja",
"Palkanlaskentap\u00e4\u00e4llikk\u00f6",
"Panostaja",
"Paperikonservaattori",
"Parturi-kampaaja",
"Passi- ja maahantulolupavirkailija/toimistovirkailija",
"Pataljoonan komentaja",
"Pedagogi",
"Radioasentaja",
"Rahakammion johtaja",
"Raideliikennejohtaja",
"Rajael\u00e4inl\u00e4\u00e4k\u00e4ri",
"Rakennemuutosjohtaja",
"Raportoinnin asiantuntija",
"Ratainsin\u00f6\u00f6ri",
"Rauhanturvaaja",
"Ravintohaastattelija",
"Rehtori",
"Saamelaisarkistonhoitaja",
"Sadehavainnontekij\u00e4",
"Sairaala-apulainen",
"Saksan, englannin ja ruotsinkielen lehtori",
"Salkunhoitaja",
"Sanomakeskusaliupseeri",
"Satamap\u00e4\u00e4llikk\u00f6",
"Seismologi",
"Sektorijohtaja",
"Selvittelij\u00e4",
"Taajuussuunnittelija",
"Taideamanuenssi",
"Tallentaja",
"Tanssija",
"Tapahtumakoordinaattori",
"Tarjoilija",
"Tasa-arvoneuvos",
"Tavaraliikennelupak\u00e4sittelij\u00e4",
"Team finland kasvu- ja kansainv\u00e4listymiskoordinaattori",
"Teemap\u00e4\u00e4llikk\u00f6",
"Ulkoasiainneuvos",
"Ulosottojohtaja",
"Ultra\u00e4\u00e4nihoitaja",
"Unix-asiantuntija",
"Upseeri",
"Urakonsultti",
"Urheiluohjaaja",
"Vaaitsija",
"Vac-yhdyshenkil\u00f6",
"Vahingonkorvausasiantuntija",
"Vaihteenhoitaja",
"Vakuustoimittaja",
"Valaistusmestari",
"Vammaisasiamies",
"Vanhempi tutkijainsin\u00f6\u00f6ri",
"Vapaa-ajan ohjaaja",
"Varadekaani",
"Www-asiantuntija",
"Yhdenvertaisuusvaltuutettu",
"Yhteinen tuntiopettaja",
"Yksikk\u00f6sihteeri",
"Yleinen edunvalvoja",
"Yliaktuaari",
"Yll\u00e4pidon palvelup\u00e4\u00e4llikk\u00f6",
"Yl\u00e4asteen rehtori",
"Ymp\u00e4rint\u00f6nsuojeluyksik\u00f6n p\u00e4\u00e4llikk\u00f6",
"Yritt\u00e4jyysneuvoja",
"Yva-koordinaattori"
)
)
)
# phone_number ------------------------------
phone_number_fi_FI = R6Class(
"phone_number_fi_FI",
inherit = phone_number_init,
cloneable = FALSE,
private = list(
formats = c(
'+358 ## #######',
'+358 #########',
'+358#########',
'(+358) #########',
'0#########',
'0## ### ####'
)
)
)
# ssn ----------------------------------------
ssn_fi_FI = R6Class(
"ssn_fi_FI",
inherit = ssn_init,
cloneable = FALSE,
private = list(
vat_id_formats = 'FI########',
checksum = function(hetu) {
checksum_characters = setdiff(c(seq(0, 9), LETTERS),
c("G", "I", "O", "Q", "Z"))
return(checksum_characters[(as.integer(hetu) %% 31) + 1])
},
get_century_code = function(year) {
# Returns the century code for a given year
if (year >= 2000 & year < 3000) {
sep = "A"
} else {
if (year >= 1900 & year < 2000){
sep = "-"
} else {
stop("Finnish SSN do not support people born before the year 1800 or after the year 2999")
}
}
return(sep)
}
),
public = list(
ssn = function(min_age = 0, max_age = 105, artificial = FALSE) {
# HETU, Swedish: Personbeteckning). This function assigns random
# gender to person.
# HETU consists of eleven characters of the form DDMMYYCZZZQ, where
# DDMMYY is the date of birth, C the century sign, ZZZ the individual
# number and Q the control character (checksum). The sign for the
# century is either + (1800–1899), - (1900–1999), or A (2000–2099).
# The individual number ZZZ is odd for males and even for females.
# For people born in Finland its range is 002-899
# (larger numbers may be used in special cases).
# An example of a valid code is 311280-888Y.
# https://en.wikipedia.org/wiki/National_identification_number #Finland
age = ddays(private$random_int(min_age * 365, max_age * 365))
birthday = today() - age
hetu_date = sprintf("%02d%02d%s", day(birthday),
month(birthday),
str_sub(year(birthday), -2, -1))
if (artificial) {
suffix = sample(seq(900, 998), 1)
} else {
suffix = sprintf("%03d", sample(seq(2, 898), 1))
}
checksum = private$checksum(str_c(hetu_date, suffix))
sep = private$get_century_code(year(birthday))
hetu = str_c(hetu_date, sep, suffix, checksum)
return(hetu)
},
vat_id = function() {
# http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
# :return: A random Finnish VAT ID
return(private$bothify(private$random_element(private$vat_id_formats)))
}
)
)
## credit_card -----------------
credit_card_fi_FI = R6Class(
"credit_card_fi_FI",
inherit = credit_card_init,
cloneable = FALSE,
private = list(
first_names = (person_fi_FI$new())$.__enclos_env__$private$first_names,
first_name = (person_fi_FI$new())$first_name,
last_names = (person_fi_FI$new())$.__enclos_env__$private$last_names,
last_name = (person_fi_FI$new())$last_name
)
)
## profile ------------------
profile_fi_FI = R6Class(
"profile_fi_FI",
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_fi_FI$new())$name_female(),
(person_fi_FI$new())$name_male())
temp = list(
"username" = (internet_fi_FI$new())$user_name(),
"name" = name,
"sex" = sex,
"address" = (address_fi_FI$new())$address(),
"mail" = (internet_fi_FI$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_fi_FI$new())$job(),
"company" = (company_fi_FI$new())$company(),
"ssn" = (ssn_fi_FI$new())$ssn(),
"residence" = (address_fi_FI$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_fi_FI$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.