R/es_MX.R

# person -----------------------------------
person_es_MX = R6Class(
  "person_es_MX",
  inherit = person_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '{first_name} {last_name} {last_name}',
      '{first_name} {first_name} {last_name}',
      '{first_name} {first_name} {last_name} {last_name}',
      '{first_name} {last_name}',
      '{prefix} {first_name} {last_name}'),

    first_names = c(
      "Abel",
      "Abelardo",
      "Abigail",
      "Abraham",
      "Abril",
      "Adalberto",
      "Ad\u00e1n",
      "Adela",
      "Adriana",
      "Aida",
      "Alejandra",
      "Agust\u00edn",
      "Alberto",
      "Aldonza",
      "Alicia",
      "Alta  Gracia",
      "Alonso",
      "Aldo",
      "Alejandro",
      "Alfonso",
      "Alfredo",
      "Alma",
      "Alvaro",
      "Amalia",
      "Amanda",
      "Amador",
      "Amelia",
      "Ana",
      "Anabel",
      "Ana Luisa",
      "Ana Mar\u00eda",
      "Anel",
      "Andrea",
      "Andr\u00e9s",
      "\u00c1ngel",
      "\u00c1ngela",
      "Ang\u00e9lica",
      "Antonia",
      "Antonio",
      "Araceli",
      "Arcelia",
      "Ariadna",
      "Armando",
      "Arturo",
      "Asunci\u00f3n",
      "Augusto",
      "Aurora",
      "Aurelio",
      "Barbara",
      "Beatriz",
      "Berta",
      "Benito",
      "Benjam\u00edn",
      "Bernardo",
      "Bernab\u00e9",
      "Bianca",
      "Blanca",
      "Bruno",
      "Camila",
      "Camilo",
      "Caridad",
      "Carla",
      "Carlos",
      "Carlota",
      "Carmen",
      "Carolina",
      "Catalina",
      "C\u00e9sar",
      "Cecilia",
      "Celia",
      "Citlali",
      "Clara",
      "Claudia",
      "Claudio",
      "Clemente",
      "Concepci\u00f3n",
      "Conchita",
      "Cornelio",
      "Cristian",
      "Cristal",
      "Cristina",
      "Cristobal",
      "Cynthia",
      "Dalia",
      "Daniel",
      "Daniela",
      "Dar\u00edo",
      "David",
      "D\u00e9bora",
      "Delia",
      "Diana",
      "Diego",
      "Dolores",
      "Dulce",
      "Dulce Mar\u00eda",
      "Eduardo",
      "Elena",
      "Elias",
      "Elisa",
      "Eloisa",
      "Elsa",
      "Elvia",
      "Elvira",
      "Eloy",
      "Emilia",
      "Emiliano",
      "Emilio",
      "Enrique",
      "Eric",
      "Ernesto",
      "Esmeralda",
      "Esteban",
      "Estefan\u00eda",
      "Estela",
      "Esparta",
      "Espartaco",
      "Esperanza",
      "Estela",
      "Esther",
      "Eugenia",
      "Eugenio",
      "Eva",
      "Evelio",
      "Fabiola",
      "Federico",
      "Felipe",
      "Fernando",
      "Felix",
      "Fidel",
      "Flavio",
      "Florencia",
      "Francisco",
      "Francisco Javier",
      "Francisca",
      "Frida",
      "Gabino",
      "Gabriela",
      "Gabriel",
      "Genaro",
      "Georgina",
      "Gerardo",
      "Ger\u00f3nimo",
      "Germ\u00e1n",
      "Gilberto",
      "Guillermina",
      "Gloria",
      "Gonzalo",
      "Graciela",
      "Gregorio",
      "Guillermo",
      "Guadalupe",
      "Gustavo",
      "H\u00e9ctor",
      "Helena",
      "Hermelinda",
      "Hern\u00e1n",
      "Hilda",
      "Homero",
      "Horacio",
      "Hugo",
      "Humberto",
      "Ignacio",
      "Ilse",
      "Indira",
      "In\u00e9s",
      "Irene",
      "Irma",
      "Itzel",
      "Isaac",
      "Isabel",
      "Isabela",
      "Israel",
      "Iv\u00e1n",
      "Ivonne",
      "Jacinto",
      "Jacobo",
      "Jaime",
      "Javier",
      "Jaqueline",
      "Jer\u00f3nimo",
      "Jes\u00fas",
      "Joaqu\u00edn",
      "Jon\u00e1s",
      "Jorge",
      "Jorge Luis",
      "Jos",
      "Jos\u00e9",
      "Josefina",
      "Jos\u00e9 Carlos",
      "Jos\u00e9 Eduardo",
      "Jos\u00e9 Emilio",
      "Jos\u00e9 Luis",
      "Jos\u00e9 Manu\u00e9l",
      "Jos\u00e9 Mar\u00eda",
      "Juan",
      "Juana",
      "Juan Carlos",
      "Judith",
      "Julia",
      "Julio",
      "Julio C\u00e9sar",
      "Laura",
      "Leonardo",
      "Leonel",
      "Leonor",
      "Karla",
      "Karina",
      "Leticia",
      "Lorenzo",
      "Lucas",
      "Lilia",
      "Liliana",
      "Linda",
      "Lorena",
      "Lourdes",
      "Luc\u00eda",
      "Luisa",
      "Luz",
      "Luis",
      "Luis Miguel",
      "Luis Manuel",
      "Magdalena",
      "Manuel",
      "Marco Antonio",
      "Marcela",
      "Marcos",
      "Margarita",
      "Mar\u00eda",
      "Marisela",
      "Marisol",
      "Mar\u00eda del Carmen",
      "Mar\u00eda Cristina",
      "Mar\u00eda Elena",
      "Mar\u00eda Eugenia",
      "Mar\u00eda Jos\u00e9",
      "Mar\u00eda Luisa",
      "Mar\u00eda Teresa",
      "Marisol",
      "Martha",
      "Mayte",
      "Mariano",
      "Mariana",
      "Mario",
      "Mart\u00edn",
      "Mateo",
      "Mauro",
      "Mauricio",
      "Maximiliano",
      "Mercedes",
      "Micaela",
      "Minerva",
      "Mitzy",
      "Miguel",
      "Miguel \u00e1ngel",
      "Miriam",
      "Modesto",
      "M\u00f3nica",
      "Nadia",
      "Natalia",
      "Natividad",
      "Nancy",
      "Nayeli",
      "Nelly",
      "Noelia",
      "Noem\u00ed",
      "Norma",
      "Nicol\u00e1s",
      "Octavio",
      "Ofelia",
      "Olivia",
      "\u00d3liver",
      "Olga",
      "\u00d3scar",
      "Oswaldo",
      "Omar",
      "Pablo",
      "Paola",
      "Patricia",
      "Pamela",
      "Patricio",
      "Pascual",
      "Paulina",
      "Pedro",
      "Perla",
      "Pilar",
      "Porfirio",
      "Rafa\u00e9l",
      "Ramiro",
      "Ram\u00f3n",
      "Ra\u00fal",
      "Raquel",
      "Rebeca",
      "Reina",
      "Renato",
      "Ren\u00e9",
      "Reynaldo",
      "Ricardo",
      "Roberto",
      "Rodolfo",
      "Roc\u00edo",
      "Rodrigo",
      "Rolando",
      "Rosa",
      "Rosalia",
      "Rosario",
      "Rub\u00e9n",
      "Rufino",
      "Ruby",
      "Salvador",
      "Salma",
      "Samuel",
      "Sandra",
      "Santiago",
      "Sara",
      "Sessa",
      "Sergio",
      "Seraf\u00edn",
      "Silvano",
      "Silvia",
      "Sof\u00eda",
      "Socorro",
      "Soledad",
      "Sonia",
      "Susana",
      "Tania",
      "Teresa",
      "Teodoro",
      "Timoteo",
      "Tom\u00e1s",
      "Trinidad",
      "Ver\u00f3nica",
      "Vicente",
      "Violeta",
      "Uriel",
      "\u00darsula",
      "Vanesa",
      "V\u00edctor",
      "Victoria",
      "Virginia",
      "Wilfrido",
      "Wendolin",
      "Yeni",
      "Yolanda",
      "Yuridia",
      "Zacar\u00edas",
      "Zeferino",
      "Zo\u00e9"
    ),

    last_names = c(
      "Abrego",
      "Abreu",
      "Acevedo",
      "Acosta",
      "Acu\u00f1a",
      "Adame",
      "Aguayo",
      "Aguilar",
      "Aguilera",
      "Aguirre",
      "Alarc\u00f3n",
      "Alba",
      "Alcala",
      "Alc\u00e1ntar",
      "Alcaraz",
      "Alejandro",
      "Alem\u00e1n",
      "Alfaro",
      "Almanza",
      "Almaraz",
      "Almonte",
      "Alonso",
      "Alonzo",
      "Altamirano",
      "Alva",
      "Alvarado",
      "Alvarez",
      "Amador",
      "Amaya",
      "Anaya",
      "Anguiano",
      "Angulo",
      "Aparicio",
      "Apodaca",
      "Aponte",
      "Arag\u00f3n",
      "Aranda",
      "Arce",
      "Archuleta",
      "Arellano",
      "Arenas",
      "Arevalo",
      "Arguello",
      "Arias",
      "Armas",
      "Armend\u00e1riz",
      "Armenta",
      "Arredondo",
      "Arreola",
      "Arriaga",
      "Arroyo",
      "Arteaga",
      "\u00c1valos",
      "\u00c1vila",
      "Avil\u00e9s",
      "Ayala",
      "Baca",
      "Badillo",
      "B\u00e1ez",
      "Baeza",
      "Bahena",
      "Balderas",
      "Ballesteros",
      "Ba\u00f1uelos",
      "Barajas",
      "Barela",
      "Barrag\u00e1n",
      "Barraza",
      "Barrera",
      "Barreto",
      "Barrientos",
      "Barrios",
      "Batista",
      "Becerra",
      "Beltr\u00e1n",
      "Benavides",
      "Benav\u00eddez",
      "Ben\u00edtez",
      "Berm\u00fadez",
      "Bernal",
      "Berr\u00edos",
      "B\u00e9tancourt",
      "Blanco",
      "Bonilla",
      "Borrego",
      "Botello",
      "Bravo",
      "Briones",
      "Brise\u00f1o",
      "Brito",
      "Bueno",
      "Burgos",
      "Bustamante",
      "Bustos",
      "Caballero",
      "Cab\u00e1n",
      "Cabrera",
      "Cadena",
      "Caldera",
      "Calder\u00f3n",
      "Calvillo",
      "Camacho",
      "Camarillo",
      "Campos",
      "Canales",
      "Candelaria",
      "Cano",
      "Cant\u00fa",
      "Caraballo",
      "Carbajal",
      "Cardenas",
      "Cardona",
      "Carmona",
      "Carranza",
      "Carrasco",
      "Carre\u00f3n",
      "Carrera",
      "Carrero",
      "Carrillo",
      "Carri\u00f3n",
      "Carvajal",
      "Casanova",
      "Casares",
      "Cas\u00e1rez",
      "Casas",
      "Casillas",
      "Casta\u00f1eda",
      "Castellanos",
      "Castillo",
      "Castro",
      "Cavazos",
      "Cazares",
      "Ceballos",
      "Cedillo",
      "Ceja",
      "Centeno",
      "Cepeda",
      "Cervantes",
      "Cerv\u00e1ntez",
      "Chac\u00f3n",
      "Chapa",
      "Chavarr\u00eda",
      "Ch\u00e1vez",
      "Cintr\u00f3n",
      "Cisneros",
      "Collado",
      "Collazo",
      "Col\u00f3n",
      "Colunga",
      "Concepci\u00f3n",
      "Contreras",
      "Cordero",
      "C\u00f3rdova",
      "Cornejo",
      "Corona",
      "Coronado",
      "Corral",
      "Corrales",
      "Correa",
      "Cort\u00e9s",
      "Cortez",
      "Cotto",
      "Covarrubias",
      "Crespo",
      "Cruz",
      "Cuellar",
      "Curiel",
      "D\u00e1vila",
      "de Anda",
      "de Jes\u00fas",
      "de la Cr\u00faz",
      "de la Fuente",
      "de la Garza",
      "de la O",
      "de la Rosa",
      "de la Torre",
      "de Le\u00f3n",
      "Delgadillo",
      "Delgado",
      "del R\u00edo",
      "del Valle",
      "D\u00edaz",
      "Dom\u00ednguez",
      "Duarte",
      "Due\u00f1as",
      "Dur\u00e1n",
      "Echeverr\u00eda",
      "Elizondo",
      "Enr\u00edquez",
      "Escalante",
      "Escamilla",
      "Escobar",
      "Escobedo",
      "Esparza",
      "Espinal",
      "Espino",
      "Espinosa",
      "Espinoza",
      "Esquibel",
      "Esquivel",
      "Est\u00e9vez",
      "Estrada",
      "Fajardo",
      "Far\u00edas",
      "Feliciano",
      "Fern\u00e1ndez",
      "Ferrer",
      "Fierro",
      "Figueroa",
      "Flores",
      "Fl\u00f3rez",
      "Fonseca",
      "Franco",
      "Fr\u00edas",
      "Fuentes",
      "Gait\u00e1n",
      "Galarza",
      "Galindo",
      "Gallardo",
      "Gallegos",
      "Galv\u00e1n",
      "G\u00e1lvez",
      "Gamboa",
      "Gamez",
      "Gaona",
      "Garay",
      "Garc\u00eda",
      "Garibay",
      "Garica",
      "Garrido",
      "Garza",
      "Gast\u00e9lum",
      "Gayt\u00e1n",
      "Gil",
      "Gir\u00f3n",
      "God\u00ednez",
      "Godoy",
      "G\u00f3mez",
      "Gonzales",
      "Gonz\u00e1lez",
      "Gollum",
      "Gracia",
      "Granado",
      "Granados",
      "Griego",
      "Grijalva",
      "Guajardo",
      "Guardado",
      "Guerra",
      "Guerrero",
      "Guevara",
      "Guillen",
      "Gurule",
      "Guti\u00e9rrez",
      "Guzm\u00e1n",
      "Haro",
      "Henr\u00edquez",
      "Heredia",
      "Hern\u00e1dez",
      "Hernandes",
      "Hern\u00e1ndez",
      "Herrera",
      "Hidalgo",
      "Hinojosa",
      "Holgu\u00edn",
      "Huerta",
      "Hurtado",
      "Ibarra",
      "Iglesias",
      "Irizarry",
      "Jaime",
      "Jaimes",
      "J\u00e1quez",
      "Jaramillo",
      "Jasso",
      "Jim\u00e9nez",
      "Jim\u00ednez",
      "Ju\u00e1rez",
      "Jurado",
      "Laboy",
      "Lara",
      "Laureano",
      "Leal",
      "Lebr\u00f3n",
      "Ledesma",
      "Leiva",
      "Lemus",
      "Le\u00f3n",
      "Lerma",
      "Leyva",
      "Lim\u00f3n",
      "Linares",
      "Lira",
      "Llamas",
      "Loera",
      "Lomeli",
      "Longoria",
      "L\u00f3pez",
      "Lovato",
      "Loya",
      "Lozada",
      "Lozano",
      "Lucero",
      "Lucio",
      "Luevano",
      "Lugo",
      "Luna",
      "Mac\u00edas",
      "Madera",
      "Madrid",
      "Madrigal",
      "Maestas",
      "Maga\u00f1a",
      "Malave",
      "Maldonado",
      "Manzanares",
      "Mares",
      "Mar\u00edn",
      "M\u00e1rquez",
      "Marrero",
      "Marroqu\u00edn",
      "Mart\u00ednez",
      "Mascare\u00f1as",
      "Mata",
      "Mateo",
      "Mat\u00edas",
      "Matos",
      "Maya",
      "Mayorga",
      "Medina",
      "Medrano",
      "Mej\u00eda",
      "Mel\u00e9ndez",
      "Melgar",
      "Mena",
      "Menchaca",
      "M\u00e9ndez",
      "Mendoza",
      "Men\u00e9ndez",
      "Meraz",
      "Mercado",
      "Merino",
      "Mesa",
      "Meza",
      "Miramontes",
      "Miranda",
      "Mireles",
      "Mojica",
      "Molina",
      "Mondrag\u00f3n",
      "Monroy",
      "Montalvo",
      "Monta\u00f1ez",
      "Monta\u00f1o",
      "Montemayor",
      "Montenegro",
      "Montero",
      "Montes",
      "Montez",
      "Montoya",
      "Mora",
      "Morales",
      "Moreno",
      "Mota",
      "Moya",
      "Mungu\u00eda",
      "Mu\u00f1iz",
      "Mu\u00f1oz",
      "Murillo",
      "Muro",
      "N\u00e1jera",
      "Naranjo",
      "Narv\u00e1ez",
      "Nava",
      "Navarrete",
      "Navarro",
      "Nazario",
      "Negrete",
      "Negr\u00f3n",
      "Nev\u00e1rez",
      "Nieto",
      "Nieves",
      "Ni\u00f1o",
      "Noriega",
      "N\u00fa\u00f1ez",
      "Ocampo",
      "Ocasio",
      "Ochoa",
      "Ojeda",
      "Olivares",
      "Oliv\u00e1rez",
      "Olivas",
      "Olivera",
      "Olivo",
      "Olmos",
      "Olvera",
      "Ontiveros",
      "Oquendo",
      "Ord\u00f3\u00f1ez",
      "Orellana",
      "Ornelas",
      "Orosco",
      "Orozco",
      "Orta",
      "Ortega",
      "Ortiz",
      "Osorio",
      "Otero",
      "Ozuna",
      "Pab\u00f3n",
      "Pacheco",
      "Padilla",
      "Padr\u00f3n",
      "P\u00e1ez",
      "Palacios",
      "Palomino",
      "Palomo",
      "Pantoja",
      "Paredes",
      "Parra",
      "Partida",
      "Pati\u00f1o",
      "Paz",
      "Pedraza",
      "Pedroza",
      "Pelayo",
      "Pe\u00f1a",
      "Perales",
      "Peralta",
      "Perea",
      "Peres",
      "P\u00e9rez",
      "Pichardo",
      "Pi\u00f1a",
      "Pineda",
      "Pizarro",
      "Polanco",
      "Ponce",
      "Porras",
      "Portillo",
      "Posada",
      "Prado",
      "Preciado",
      "Prieto",
      "Puente",
      "Puga",
      "Pulido",
      "Quesada",
      "Quezada",
      "Qui\u00f1ones",
      "Qui\u00f1\u00f3nez",
      "Quintana",
      "Quintanilla",
      "Quintero",
      "Quiroz",
      "Rael",
      "Ram\u00edrez",
      "Ram\u00f3n",
      "Ramos",
      "Rangel",
      "Rasc\u00f3n",
      "Raya",
      "Razo",
      "Regalado",
      "Rend\u00f3n",
      "Renter\u00eda",
      "Res\u00e9ndez",
      "Reyes",
      "Reyna",
      "Reynoso",
      "Rico",
      "Rinc\u00f3n",
      "Riojas",
      "R\u00edos",
      "Rivas",
      "Rivera",
      "Rivero",
      "Robledo",
      "Robles",
      "Rocha",
      "Rodarte",
      "Rodr\u00edgez",
      "Rodr\u00edguez",
      "Rodr\u00edquez",
      "Rojas",
      "Rojo",
      "Rold\u00e1n",
      "Rol\u00f3n",
      "Romero",
      "Romo",
      "Roque",
      "Rosado",
      "Rosales",
      "Rosario",
      "Rosas",
      "Roybal",
      "Rubio",
      "Ruelas",
      "Ruiz",
      "Saavedra",
      "S\u00e1enz",
      "Saiz",
      "Salas",
      "Salazar",
      "Salcedo",
      "Salcido",
      "Salda\u00f1a",
      "Saldivar",
      "Salgado",
      "Salinas",
      "Samaniego",
      "Sanabria",
      "Sanches",
      "S\u00e1nchez",
      "Sandoval",
      "Santacruz",
      "Santana",
      "Santiago",
      "Santill\u00e1n",
      "Sarabia",
      "Sauceda",
      "Saucedo",
      "Segovia",
      "Segura",
      "Sep\u00falveda",
      "Serna",
      "Serrano",
      "Serrato",
      "Sevilla",
      "Sierra",
      "Sisneros",
      "Solano",
      "Sol\u00eds",
      "Soliz",
      "Solorio",
      "Solorzano",
      "Soria",
      "Sosa",
      "Sotelo",
      "Soto",
      "Su\u00e1rez",
      "Tafoya",
      "Tamayo",
      "Tamez",
      "Tapia",
      "Tejada",
      "Tejeda",
      "T\u00e9llez",
      "Tello",
      "Ter\u00e1n",
      "Terrazas",
      "Tijerina",
      "Tirado",
      "Toledo",
      "Toro",
      "Torres",
      "T\u00f3rrez",
      "Tovar",
      "Trejo",
      "Trevi\u00f1o",
      "Trujillo",
      "Ulibarri",
      "Ulloa",
      "Urbina",
      "Ure\u00f1a",
      "Ur\u00edas",
      "Uribe",
      "Urrutia",
      "Vaca",
      "Valadez",
      "Vald\u00e9s",
      "Valdez",
      "Valdivia",
      "Valencia",
      "Valent\u00edn",
      "Valenzuela",
      "Valladares",
      "Valle",
      "Vallejo",
      "Valles",
      "Valverde",
      "Vanegas",
      "Varela",
      "Vargas",
      "V\u00e1squez",
      "V\u00e1zquez",
      "Vega",
      "Vela",
      "Velasco",
      "Vel\u00e1squez",
      "Vel\u00e1zquez",
      "V\u00e9lez",
      "V\u00e9liz",
      "Venegas",
      "Vera",
      "Verdugo",
      "Verduzco",
      "Vergara",
      "Viera",
      "Vigil",
      "Villa",
      "Villag\u00f3mez",
      "Villalobos",
      "Villalpando",
      "Villanueva",
      "Villareal",
      "Villarreal",
      "Villase\u00f1or",
      "Villegas",
      "Y\u00e1\u00f1ez",
      "Ybarra",
      "Zambrano",
      "Zamora",
      "Zamudio",
      "Zapata",
      "Zaragoza",
      "Zarate",
      "Zavala",
      "Zayas",
      "Zedillo",
      "Zelaya",
      "Zepeda",
      "Z\u00fa\u00f1iga"
    ),

    prefixes = c('Sr(a).', 'Dr.', 'Mtro.', 'Lic.', 'Ing.')
  )
)

# company -----------------------------------
company_es_MX = R6Class(
  "company_es_MX",
  inherit = company_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '{last_name} {company_suffix}',
      '{last_name}-{last_name}',
      '{company_prefix} {last_name}-{last_name}',
      '{company_prefix} {last_name} y {last_name}',
      '{company_prefix} {last_name}, {last_name} y {last_name}',
      '{last_name}-{last_name} {company_suffix}',
      '{last_name}, {last_name} y {last_name}',
      '{last_name} y {last_name} {company_suffix}'
    ),
    first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
    last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,

    first_name = (person_es_MX$new())$first_name,
    last_name = (person_es_MX$new())$last_name,


    catch_phrase_words = list(
      c("habilidad","acceso","adaptador","algoritmo","alianza",
        "analista","aplicaci\u00f3n","enfoque","arquitectura","archivo",
        "inteligencia artificial","array","actitud","medici\u00f3n",
        "gesti\u00f3n presupuestaria","capacidad","desaf\u00edo",
        "circuito","colaboraci\u00f3n","complejidad","concepto",
        "conglomeraci\u00f3n","contingencia","n\u00facleo","fidelidad",
        "base de datos","data-warehouse","definici\u00f3n",
        "emulaci\u00f3n","codificar","encriptar","extranet","firmware",
        "flexibilidad","focus group","previsi\u00f3n","base de trabajo",
        "funci\u00f3n","funcionalidad","interfaz gr\u00e1fica","groupware"
        ,"interfaz gr\u00e1fico de usuario","hardware","soporte",
        "jerarqu\u00eda","conjunto","implementaci\u00f3n",
        "infraestructura","iniciativa","instalaci\u00f3n",
        "conjunto de instrucciones","interfaz","intranet","base del conocimiento",
        "red de area local","aprovechar","matrices","metodolog\u00edas",
        "middleware","migraci\u00f3n","modelo","moderador","monitorizar",
        "arquitectura abierta","sistema abierto","orquestar","paradigma",
        "paralelismo","pol\u00edtica","portal","estructura de precios",
        "proceso de mejora","producto","productividad","proyecto",
        "proyecci\u00f3n","protocolo","l\u00ednea segura","software",
        "soluci\u00f3n","estandarizaci\u00f3n","estrategia","estructura",
        "\u00e9xito","superestructura","soporte","sinergia","mediante",
        "marco de tiempo","caja de herramientas","utilizaci\u00f3n",
        "website","fuerza de trabajo"),
      c("24 horas","24/7","3ra generaci\u00f3n","4ta generaci\u00f3n",
        "5ta generaci\u00f3n","6ta generaci\u00f3n","analizada",
        "asim\u00e9trica","as\u00edncrona","monitorizada por red",
        "bidireccional","bifurcada","generada por el cliente",
        "cliente-servidor","coherente","cohesiva","compuesto",
        "sensible al contexto","basado en el contexto","basado en contenido",
        "dedicada","generado por la demanda","did\u00e1ctica",
        "direccional","discreta","din\u00e1mica","potenciada","acompasada"
        ,"ejecutiva","expl\u00edcita","tolerante a fallos","innovadora",
        "amplio abanico","global","heur\u00edstica","alto nivel",
        "hol\u00edstica","homog\u00e9nea","h\u00edbrida","incremental",
        "intangible","interactiva","intermedia","local","log\u00edstica",
        "maximizada","met\u00f3dica","misi\u00f3n cr\u00edtica",
        "m\u00f3vil","modular","motivadora","multimedia","multiestado",
        "multitarea","nacional","basado en necesidades","neutral",
        "nueva generaci\u00f3n","no-vol\u00e1til","orientado a objetos",
        "\u00f3ptima","optimizada","radical","tiempo real",
        "rec\u00edproca","regional","escalable","secundaria",
        "orientada a soluciones","estable","est\u00e1tica","sistem\u00e1tica",
        "sist\u00e9mica","tangible","terciaria","transicional","uniforme",
        "valor a\u00f1adido","v\u00eda web","defectos cero","tolerancia cero"),
      c("adaptativo","avanzado","asimilado","automatizado","balanceado",
        "enfocado al negocio","centralizado","clonado","compatible",
        "configurable","multiplataforma","enfocado al cliente",
        "personalizable","descentralizado","digitalizado","distribuido",
        "diverso","mejorado","en toda la empresa","ergon\u00f3mico",
        "exclusivo","expandido","extendido","cara a cara","enfocado",
        "de primera l\u00ednea","totalmente configurable",
        "basado en funcionalidad","fundamental","horizontal","implementado",
        "innovador","integrado","intuitivo","inverso","administrado",
        "mandatorio","monitoreado","multicanal","multilateral",
        "multi-capas","en red","basado en objetos","de arquitectura abierta",
        "open-source","operativo","optimizado","opcional",
        "org\u00e1nico","organizado","perseverante","persistente",
        "polarizado","preventivo","proactivo","enfocado a ganancias",
        "programable","progresivo","llave p\u00fablica",
        "enfocado a la calidad","reactivo","realineado","recontextualizado",
        "reducido","con ingenier\u00eda inversa","de tama\u00f1o adecuado",
        "robusto","seguro","compartible","sincronizado","orientado a equipos",
        "total","universal","actualizable","centrado en el usuario",
        "vers\u00e1til","virtual","visionario")
    ),

    bs_words = list(
      c("implementa","utiliza","integra","optimiza","evoluciona",
        "transforma","abraza","habilita","orquesta","reinventa","agrega",
        "mejora","incentiva","modifica","empodera","monetiza","fortalece",
        "facilita","sinergiza","crea marca","crece","sintetiza","entrega",
        "mezcla","incuba","compromete","maximiza","visualiza","innova",
        "escala","libera","maneja","extiende","revoluciona","genera",
        "explota","transiciona","itera","cultiva","redefine",
        "recontextualiza"),
      c("sinergias","paradigmas","marcados","socios","infraestructuras",
        "plataformas","iniciativas","canales","communidades","ROI",
        "soluciones","portales","nichos","tecnolog\u00edas","contenido",
        "cadena de producci\u00f3n","convergencia","relaciones",
        "arquitecturas","interfaces","comercio electr\u00f3nico",
        "sistemas","ancho de banda","modelos","entregables","usuarios",
        "esquemas","redes","aplicaciones","m\u00e9tricas",
        "funcionalidades","experiencias","servicios web",
        "metodolog\u00edas"),
      c("valor agregado","verticales","proactivas","robustas",
        "revolucionarias","escalables","de punta","innovadoras",
        "intuitivas","estrat\u00e9gicas","e-business",
        "de misi\u00f3n cr\u00edtica","uno-a-uno","24/7","end-to-end","globales","B2B",
        "B2C","granulares","sin fricciones","virtuales","virales",
        "din\u00e1micas","24/365","magn\u00e9ticas","listo para la web",
        "interactivas","punto-com","sexi","en tiempo real","eficientes",
        "front-end","distribuidas","extensibles","llave en mano",
        "de clase mundial","open-source","plataforma cruzada","de paquete",
        "empresariales","integrado","impacto total","inal\u00e1mbrica",
        "transparentes","de siguiente generaci\u00f3n","lo \u00faltimo",
        "centrado al usuario","visionarias","personalizado","ubicuas",
        "plug-and-play","colaborativas","hol\u00edsticas","ricas")
    ),

    company_prefixes = c('Despacho', 'Grupo', 'Corporacin', 'Club',
                         'Industrias', 'Laboratorios', 'Proyectos'),

    company_suffixes = c('A.C.', 'S.A.', 'S.A. de C.V.', 'S.C.',
                         'S. R.L. de C.V.', 'e Hijos', 'y Asociados')

  ),

  public = list(
    company_prefix = function(){
      return(private$random_element(private$company_prefixes))
    }
  )
)
# address ----------------------------------
address_es_MX = R6Class(
  "address_es_MX",
  inherit = address_es,
  cloneable = FALSE,
  private = list(
    first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
    last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,

    first_name = (person_es_MX$new())$first_name,
    last_name = (person_es_MX$new())$last_name,

    city_prefixes = c('Sur', 'Norte'),
    city_adjetives = c('Nueva', 'Vieja'),
    city_suffixes = c('de la Monta\u00f1a', 'los bajos', 'los altos'),
    street_prefixes = c(
      'Ampliaci\u00f3n', 'Andador', 'Avenida', 'Boulevard', 'Calle', 'Callej\u00f3n',
      'Calzada', 'Cerrada', 'Circuito', 'Circunvalaci\u00f3n', 'Continuaci\u00f3n',
      'Corredor', 'Diagonal', 'Eje vial', 'Pasaje', 'Peatonal', 'Perif\u00e9rico',
      'Privada', 'Prolongaci\u00f3n', 'Retorno', 'Viaducto'),

    building_number_formats = c('#####', '####', '###'),
    postcode_formats = c('#####', '#####-####'),

    # States and abbrs from Mexico from INEGI
    # http://www.inegi.org.mx/geo/contenidos/geoestadistica/CatalogoClaves.aspx
    states = c(
      "AGS" = "Aguascalientes",
      "BC" = "Baja California",
      "BCS" = "Baja California Sur",
      "CAMP" = "Campeche",
      "COAH" = "Coahuila de Zaragoza",
      "COL" = "Colima",
      "CHIS" = "Chiapas",
      "CHIH" = "Chihuahua",
      "DF" = "Distrito Federal",
      "DGO" = "Durango",
      "GTO" = "Guanajuato",
      "GRO" = "Guerrero",
      "HGO" = "Hidalgo",
      "JAL" = "Jalisco",
      "MEX" = "M\u00e9xico",
      "MICH" = "Michoac\u00e1n de Ocampo",
      "MOR" = "Morelos",
      "NAY" = "Nayarit",
      "NL" = "Nuevo Le\u00f3n",
      "OAX" = "Oaxaca",
      "PUE" = "Puebla",
      "QRO" = "Quer\u00e9taro",
      "Q. ROO" = "Quintana Roo",
      "SLP" = "San Luis Potos\u00ed",
      "SIN" = "Sinaloa",
      "SON" = "Sonora",
      "TAB" = "Tabasco",
      "TAMPS" = "Tamaulipas",
      "TLAX" = "Tlaxcala",
      "VER" = "Veracruz de Ignacio de la Llave",
      "YUC" = "Yucat\u00e1n",
      "ZAC" = "Zacatecas"
    ),

    zip_codes = list(
      # The ZipCodes has a begin & final range
      'AGS' =  c(20000, 20999),
      'BC' = c(21000, 22999),
      'BCS' = c(23000, 23999),
      'CAMP' = c(24000, 24999),
      'COAH' = c(25000, 27999),
      'COL' = c(28000, 28999),
      'CHIS' = c(29000, 30999),
      'CHIH' = c(31000, 33999),
      'DF' = c(1000, 19999),
      'DGO' = c(36000, 35999),
      'GTO' = c(36000, 38999),
      'GRO' = c(39000, 41999),
      'HGO' = c(42000, 43999),
      'JAL' = c(44000, 49999),
      'MEX' = c(50000, 57999),
      'MICH' = c(58000, 61999),
      'MOR' = c(62000, 62999),
      'NAY' = c(63000, 63999),
      'NL' = c(64000, 67999),
      'OAX' = c(68000, 71999),
      'PUE' = c(72000, 75999),
      'QRO' = c(76000, 76999),
      'Q. ROO' = c(77000, 75999),
      'SLP' = c(78000, 79999),
      'SIN' = c(80000, 82999),
      'SON' = c(83000, 85999),
      'TAB' = c(86000, 86999),
      'TAMPS' = c(87000, 89999),
      'TLAX' = c(90000, 90999),
      'VER' = c(91000, 97999),
      'YUC' = c(97000, 97999),
      'ZAC' = c(98000, 99999)),

    city_formats = c(
      '{city_adjective} {country}',
      'San {first_name} {city_suffix}'),

    street_name_formats = c(
      '{street_prefix} {last_name}',
      '{street_prefix} {country}',
      '{street_prefix} {state}',
      '{street_prefix} {city_prefix} {last_name}'),

    street_address_formats = '{street_name} {secondary_address}',

    address_formats = "{street_address}\n{city}, {state_abbr} {postcode}",

    secondary_address_formats = c(
      '### ###', '### Interior ###',
      '### Edif. ### , Depto. ###')
  ),

  public = list(
    city_prefix = function(){
      return(private$random_element(private$city_prefixes))
    },

    city_suffix = function(){
      return(private$random_element(private$city_suffixes))
    },

    city_adjective = function(){
      return(private$random_element(private$city_adjetives))
    },

    street_prefix = function(){
      return(private$random_element(private$street_prefixes))
    },

    secondary_address = function(){
      return(private$numerify(private$random_element(
        private$secondary_address_formats)))
    },

    state = function(){
      return(private$random_element(
        unname(private$states)))
    },

    state_abbr = function(){
      return(private$random_element(
        names(private$states)))
    }
  )
)

# phone_number ------------------------------
phone_number_es_MX = R6Class(
  "phone_number_es_MX",
  inherit = phone_number_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '+##(#)##########',
      '+##(#)##########',
      '0##########',
      '0##########',
      '###-###-####',
      '(###)###-####',
      '1-###-###-####',
      '###.###.####',
      '###-###-####',
      '(###)###-####',
      '1-###-###-####',
      '###.###.####',
      '###-###-####x###',
      '(###)###-####x###',
      '1-###-###-####x###',
      '###.###.####x###',
      '###-###-####x####',
      '(###)###-####x####',
      '1-###-###-####x####',
      '###.###.####x####',
      '###-###-####x#####',
      '(###)###-####x#####',
      '1-###-###-####x#####',
      '###.###.####x#####'
    )
  )
)

# ssn -------------------------------
ssn_es_MX = R6Class(
  "ssn_es_MX",
  inherit = ssn_init,
  cloneable = FALSE,
  private = list(
    ssn_formats = "###########",
    ALPHABET = LETTERS,
    ALPHANUMERIC = c(seq(0, 9), LETTERS),
    VOWELS = c("A", "E", "I", "O", "U"),
    CONSONANTS = setdiff(LETTERS, c("A", "E", "I", "O", "U")),

    # https://es.wikipedia.org/wiki/Plantilla:Abreviaciones_de_los_estados_de_M%C3%A9xico
    STATES_RENAPO = c(
      "AS",
      "BC",
      "BS",
      "CC",
      "CS",
      "CH",
      "DF",
      "CL",
      "CM",
      "DG",
      "GT",
      "GR",
      "HG",
      "JC",
      "MC",
      "MN",
      "MS",
      "NT",
      "NL",
      "OC",
      "PL",
      "QO",
      "QR",
      "SP",
      "SL",
      "SR",
      "TC",
      "TS",
      "TL",
      "VZ",
      "YN",
      "ZS",
      "NE"
    ),

    FORBIDDEN_WORDS = c(
      "BUEI" = "BUEX",
      "BUEY" = "BUEX",
      "CACA" = "CACX",
      "CACO" = "CACX",
      "CAGA" = "CAGX",
      "CAGO" = "CAGX",
      "CAKA" = "CAKX",
      "CAKO" = "CAKX",
      "COGE" = "COGX",
      "COJA" = "COJX",
      "COJE" = "COJX",
      "COJI" = "COJX",
      "COJO" = "COJX",
      "CULO" = "CULX",
      "FETO" = "FETX",
      "GUEY" = "GUEX",
      "JOTO" = "JOTX",
      "KACA" = "KACX",
      "KACO" = "KACX",
      "KAGA" = "KAGX",
      "KAGO" = "KAGX",
      "KOGE" = "KOGX",
      "KOJO" = "KOJX",
      "KAKA" = "KAKX",
      "KULO" = "KULX",
      "MAME" = "MAMX",
      "MAMO" = "MAMX",
      "MEAR" = "MEAX",
      "MEAS" = "MEAX",
      "MEON" = "MEOX",
      "MION" = "MIOX",
      "MOCO" = "MOCX",
      "MULA" = "MULX",
      "PEDA" = "PEDX",
      "PEDO" = "PEDX",
      "PENE" = "PENX",
      "PUTA" = "PUTX",
      "PUTO" = "PUTX",
      "QULO" = "QULX",
      "RATA" = "RATX",
      "RUIN" = "RUIN"
    ),
    CURP_CHARACTERS = c(seq(0, 9), LETTERS, "\u00d1"),
    reduce_digits = function(number) {
      if (number == 0) {
        return(0)
      }
      if (number %% 9 == 0) {
        return(9)
      }
      return(number %% 9)
    },

    ssn_checksum = function(digits) {
      # Calculate the checksum for the mexican SSN (IMSS).
      temp = 0
      for (i in seq_along(digits)) {
        n = digits[i]
        temp = temp - private$reduce_digits(n * (((i - 1) %% 2) + 1))
      }
      return(temp %% 10)
    },

    curp_checksum = function(characters) {
      # Calculate the checksum for the mexican CURP.
      start = 18
      temp = 0
      for (i in seq_along(characters)){
        n = characters[i]
        loc = which(private$CURP_CHARACTERS == n)
        temp = temp - (start - i - 1) * (loc - 1)
      }
      return(temp %% 10)
    }
  ),
  public = list(
    ssn = function(){
      # Mexican Social Security Number, as given by IMSS.
      # :return: a random Mexican SSN

      office = private$random_int(from = 1, to = 99)
      birth_year = private$random_int(from = 0, to = 99)
      start_year = private$random_int(from = 0, to = 99)
      serial = private$random_int(from = 1, to = 9999)
      num  = sprintf("%02d%02d%02d%04d",
                    office, start_year, birth_year, serial)
      check = private$ssn_checksum(as.numeric(str_split(num, "")[[1]]))

      return(str_c(num, check))
    },

    curp = function(){
      # See https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Registro_de_Poblaci%C3%B3n.
      # :return: a random Mexican CURP (Unique Population Registry Code)

      birthday = (date_time_init$new())$date_of_birth()

      first_surname = str_c(sample(private$ALPHABET, 1),
                            sample(private$VOWELS, 1))
      second_surname = sample(private$ALPHABET, 1)
      given_name = sample(private$ALPHABET, 1)
      name_initials = str_c(first_surname, second_surname, given_name)

      birth_date = strftime(birthday, "%y%m%d", tz = "UTC")
      gender = sample(c("H", "M"), size = 1)
      state = sample(private$STATES_RENAPO, 1)
      first_surname_inside = sample(private$CONSONANTS, 1)
      second_surname_inside = sample(private$CONSONANTS, 1)
      given_name_inside = sample(private$ALPHABET, 1)

      # This character is assigned to avoid duplicity
      # It's normally '0' for those born < 2000
      # and 'A' for those born >= 2000
      assigned_character = ifelse(year(birthday) < 2000, "0", "A")
      name_initials = ifelse(is.na(
        private$FORBIDDEN_WORDS[name_initials]), name_initials,
        private$FORBIDDEN_WORDS[name_initials])

      random_curp = str_c(name_initials,
                          birth_date,
                          gender,
                          state,
                          first_surname_inside,
                          second_surname_inside,
                          given_name_inside,
                          assigned_character)
      random_curp = str_c(random_curp, private$curp_checksum(random_curp))
      return(random_curp)
    },

    rfc = function(natural = TRUE) {
      # See https://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes
      # :param natural: Whether to return the RFC of a natural person.
      # Otherwise return the RFC of a legal person.
      # :type natural: bool
      # :return: a random Mexican RFC
      birthday = (date_time_init$new())$date_of_birth()

      if(natural) {
        first_surname = str_c(sample(private$ALPHABET, 1),
                              sample(private$VOWELS, 1))
        second_surname = sample(private$ALPHABET, 1)
        given_name = sample(private$ALPHABET, 1)
        name_initials = str_c(first_surname, second_surname, given_name)
      } else {
        name_initials = str_c(
          private$random_uppercase_letter(),
          private$random_uppercase_letter(),
          private$random_uppercase_letter()
        )
      }
      birth_date = strftime(birthday, "%y%m%d", tz = "UTC")
      disambiguation_code = str_c(
        sample(private$ALPHANUMERIC, 1),
        sample(private$ALPHANUMERIC, 1),
        sample(private$ALPHANUMERIC, 1)
      )
      random_rfc = str_c(
        name_initials,
        birth_date,
        disambiguation_code)
      return(random_rfc)
    }
  )
)

## credit_card -----------------
credit_card_es_MX = R6Class(
  "credit_card_es_MX",
  inherit = credit_card_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
    first_name = (person_es_MX$new())$first_name,
    last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,
    last_name = (person_es_MX$new())$last_name
  )
)



## profile ------------------
profile_es_MX = R6Class(
  "profile_es_MX",
  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_es_MX$new())$name_female(),
                    (person_es_MX$new())$name_male())
      temp = list(
        "username" = (internet_en_US$new())$user_name(),
        "name" = name,
        "sex" = sex,
        "address" = (address_es_MX$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_es_MX$new())$company(),
        "ssn" = (ssn_es_MX$new())$ssn(),
        "residence" = (address_es_MX$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)
    }

  )
)
LuYang19/faker documentation built on Jan. 3, 2020, 12:07 a.m.