From fa71835408c637cc919af7e1ebcae8c13d7bd1fd Mon Sep 17 00:00:00 2001 From: Michal Cieslar Date: Mon, 20 Nov 2023 19:02:54 +0100 Subject: [PATCH] add canadian people names --- include/faker-cxx/types/Country.h | 4 +- src/modules/person/Person.cpp | 2 + src/modules/person/PersonTest.cpp | 3 + .../person/data/canada/CanadianFirstNames.h | 96 +++++++++++++++++++ .../person/data/canada/CanadianLastNames.h | 54 +++++++++++ .../person/data/canada/CanadianPeopleNames.h | 16 ++++ 6 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 src/modules/person/data/canada/CanadianFirstNames.h create mode 100644 src/modules/person/data/canada/CanadianLastNames.h create mode 100644 src/modules/person/data/canada/CanadianPeopleNames.h diff --git a/include/faker-cxx/types/Country.h b/include/faker-cxx/types/Country.h index 02a7f40d..498c74c6 100644 --- a/include/faker-cxx/types/Country.h +++ b/include/faker-cxx/types/Country.h @@ -40,6 +40,7 @@ enum class Country Nederlands, China, Korea, + Canada, }; const std::vector countries{ @@ -48,7 +49,7 @@ const std::vector countries{ Country::Turkey, Country::Czech, Country::Slovakia, Country::Ukraine, Country::Denmark, Country::Sweden, Country::Brazil, Country::Norway, Country::Japan, Country::Portugal, Country::Hungary, Country::Croatia, Country::Greece, Country::Slovenia, Country::Austria, Country::Switzerland, Country::Belgium, Country::Nederlands, - Country::China, Country::Korea, + Country::China, Country::Korea, Country::Canada, }; inline std::string toString(Country country) @@ -70,6 +71,7 @@ inline std::string toString(Country country) {Country::Austria, "Austria"}, {Country::Switzerland, "Switzerland"}, {Country::Belgium, "Belgium"}, {Country::Nederlands, "Nederlands"}, {Country::China, "China"}, {Country::Korea, "Korea"}, + {Country::Canada, "Canada"}, }; return countryToStringMapping.at(country); diff --git a/src/modules/person/Person.cpp b/src/modules/person/Person.cpp index a19ee757..5ad9e594 100644 --- a/src/modules/person/Person.cpp +++ b/src/modules/person/Person.cpp @@ -8,6 +8,7 @@ #include "data/austria/AustrianPeopleNames.h" #include "data/belgium/BelgianPeopleNames.h" #include "data/brazil/BrazilianPeopleNames.h" +#include "data/canada/CanadianPeopleNames.h" #include "data/china/ChinesePeopleNames.h" #include "data/croatia/CroatianPeopleNames.h" #include "data/czech/CzechPeopleNames.h" @@ -69,6 +70,7 @@ const std::map countryToPeopleNamesMapping{ {Country::Austria, austrianPeopleNames}, {Country::Switzerland, swissPeopleNames}, {Country::Belgium, belgianPeopleNames}, {Country::Nederlands, dutchPeopleNames}, {Country::China, chinesePeopleNames}, {Country::Korea, koreanPeopleNames}, + {Country::Canada, canadianPeopleNames}, }; std::string middleNameForCountry(Country country, std::optional sex); diff --git a/src/modules/person/PersonTest.cpp b/src/modules/person/PersonTest.cpp index 26ec3456..1f5d1276 100644 --- a/src/modules/person/PersonTest.cpp +++ b/src/modules/person/PersonTest.cpp @@ -7,6 +7,7 @@ #include "../../common/StringHelper.h" #include "data/austria/AustrianPeopleNames.h" #include "data/belgium/BelgianPeopleNames.h" +#include "data/canada/CanadianPeopleNames.h" #include "data/china/ChinesePeopleNames.h" #include "data/croatia/CroatianPeopleNames.h" #include "data/czech/CzechPeopleNames.h" @@ -69,6 +70,7 @@ const std::map countryToPeopleNamesMapping{ {Country::Austria, austrianPeopleNames}, {Country::Switzerland, swissPeopleNames}, {Country::Belgium, belgianPeopleNames}, {Country::Nederlands, dutchPeopleNames}, {Country::China, chinesePeopleNames}, {Country::Korea, koreanPeopleNames}, + {Country::Canada, canadianPeopleNames}, }; const std::map generatedTestName{ @@ -88,6 +90,7 @@ const std::map generatedTestName{ {Country::Austria, "shouldGenerateAustrianName"}, {Country::Switzerland, "shouldGenerateSwissName"}, {Country::Belgium, "shouldGenerateBelgianName"}, {Country::Nederlands, "shouldGenerateDutchName"}, {Country::China, "shouldGenerateChineseName"}, {Country::Korea, "shouldGenerateKoreanName"}, + {Country::Canada, "shouldGenerateCanadianName"}, }; } diff --git a/src/modules/person/data/canada/CanadianFirstNames.h b/src/modules/person/data/canada/CanadianFirstNames.h new file mode 100644 index 00000000..2078b9e5 --- /dev/null +++ b/src/modules/person/data/canada/CanadianFirstNames.h @@ -0,0 +1,96 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector canadianMalesFirstNames = { + "John", "David", "Robert", "Michael", "Paul", "Richard", "James", "Peter", "William", + "Brian", "Daniel", "Mark", "Chris", "Michel", "Kevin", "George", "Ken", "Steven", + "Jim", "Andrew", "Eric", "Pierre", "Ron", "Andre", "Gary", "Thomas", "Frank", + "Jason", "Jeff", "Scott", "Donald", "Roger", "Patrick", "Wayne", "Martin", "Joe", + "Jacques", "Terry", "Bob", "Bruce", "Marc", "Greg", "Gordon", "Joseph", "Stephen", + "Gilles", "Rick", "Mike", "Raymond", "Edward", "Guy", "Larry", "Charles", "Tim", + "Tony", "Alain", "Ryan", "Jack", "Alex", "Ian", "Mario", "Gerald", "Ronald", + "Marcel", "Fred", "Steve", "Keith", "Allan", "Bill", "Randy", "Dave", "Barry", + "Douglas", "Serge", "Sylvain", "Alan", "Ray", "Jan", "Luc", "Matthew", "Yves", + "Tom", "Adam", "Craig", "Louis", "Sean", "Norman", "Nick", "Jonathan", "Roy", + "Anthony", "Yvon", "Walter", "Neil", "Bernard", "Maurice", "Henry", "Kenneth", "Albert", + "Glen", "Derek", "Simon", "Christian", "Christopher", "Harold", "Carl", "Sam", "Trevor", + "Gerard", "Glenn", "Matt", "Harry", "Jamie", "Dean", "Colin", "Darren", "Benoit", + "Arthur", "Jerry", "Justin", "Philip", "Ralph", "Ross", "Gerry", "Roland", "Bryan", + "Grant", "Leo", "Benjamin", "Vincent", "Gaetan", "Lloyd", "Lawrence", "Leonard", "Rob", + "Aaron", "Kyle", "Jose", "Philippe", "Joel", "Stan", "Bruno", "Jay", "Howard", + "Jeremy", "Victor", "Tyler", "Shane", "Ivan", "Graham", "Russell", "Garry", "Jordan", + "Mathieu", "Yvan", "Ali", "Gaston", "Jeffrey", "Ernest", "Alexander", "Fernand", "Warren", + "Gilbert", "Jon", "Karl", "Alfred", "Eugene", "Allen", "Stuart", "Alexandre", "Dominic", + "Nathan", "Gabriel", "Hugh", "Sebastien", "Adrian", "Pascal", "Stanley", "Antonio", "Georges", + "Harvey", "Nicolas", "Nicholas", "Gregory", "Josh", "Lucien", "Samuel", "Cameron", "Marco", + "Laurent", "Ben", "Carlos", "Brandon", "Jesse", "Brett", "Nelson", "Patrice", "Lionel", + "Timothy", "Andy", "Jake", "Clement", "Calvin", "Jacob", "Arnold", "Max", "Leon", + "Mohamed", "Joshua", "Jimmy", "Mohammad", "Rodney", "Daryl", "Travis", "Julien", "Manuel", + "Shaun", "Bert", "Maxime", "Edwin", "Frederic", "Clifford", "Malcolm", "Fran", "Germain", + "Bertrand", "Kris", "Hans", "Muhammad", "Angelo", "Henri", "Phillip", "Marvin", "Armand", + "Perry", "Evan", "Guillaume", "Charlie", "Clayton", "Mohammed", "Ahmed", "Stewart", "Remi", + "Herbert", "Luke", "Olivier", "Conrad", "Alvin", "Jerome", "Syed", "Luis", "Edgar", + "Jules", "Derrick", "Kurt", "Lance", "Johnny", "Bradley", "Wilfred", "Melvin", "Frederick", + "Erik", "Gino", "Joey", "Duncan", "Reginald", "Dustin", "Emile", "Antoine", "Wesley", + "Geoffrey", "Owen", "Brendan", "Taylor", "Herman", "Stefan", "Rudy", "Andrzej", "Hugo", + "Hubert", "Abdul", "Fernando", "Etienne", "Vernon", "Roman", "Emmanuel", "Adrien", "Jaime", + "Byron", "Bobby", "Amir", "Roberto", "Tommy", "Jorge", "Stephan", "Julian", "Eddie", + "Dick", "Elmer", "Dylan", "Felix", "Cyril", "Omar", "Romeo", "Jared", "Oliver", + "Luigi", "Ahmad", "Billy", "Sunny", "Vladimir", "Carlo", "Micheal", "Angel", "Mitchell", + "Raj", "Winston", "Morris", "Hector", "Igor", "Nigel", "Giuseppe", "Gavin", "Kenny", + "Ricky", "Wally", "Kelvin", "Giovanni", "Lewis", "Anton", "Wilson", "Kai", "Angus", + "Graeme", "Ricardo", "Miguel", "Mathew", "Karim", "Isaac", "Edmond", "Marcus", "Wallace", + "Austin", "Chi", "Oscar", "Dino", "Devin", "Lucas", "Boris", "Norbert", +}; + +const std::vector canadianFemalesFirstNames = { + "Mary", "Linda", "Karen", "Jennifer", "Lisa", "Susan", "Jean", "Michelle", + "Nancy", "Kim", "Kelly", "Diane", "Donna", "Julie", "Claude", "Sandra", + "Heather", "Carol", "Denis", "Dan", "Nicole", "Barbara", "Christine", "Sarah", + "Pat", "Sharon", "Brenda", "Elizabeth", "Laura", "Anne", "Margaret", "Debbie", + "Wendy", "Joanne", "Marie", "Kathy", "Amanda", "Judy", "Cindy", "Angela", + "Helen", "Stephanie", "Melissa", "Janet", "Joan", "Denise", "Cheryl", "Cathy", + "Anna", "Dennis", "Shirley", "Catherine", "Lynn", "Louise", "Maria", "Robin", + "Andrea", "Tracy", "Jane", "Ann", "Patricia", "Melanie", "Rene", "Sue", + "Laurie", "Shannon", "Dale", "Suzanne", "Ruth", "Betty", "Janice", "Amy", + "Stephane", "Tina", "Danielle", "Irene", "Gail", "Marilyn", "Elaine", "Sylvie", + "Bonnie", "Rose", "Shelley", "Sheila", "Joyce", "Caroline", "Valerie", "Erin", + "Ashley", "Rita", "Tanya", "Darlene", "Dawn", "Christina", "Nathalie", "Lorraine", + "Annie", "Rachel", "Carole", "Dorothy", "Maureen", "Diana", "Kathleen", "Carolyn", + "Chantal", "Tara", "Isabelle", "Paula", "Rebecca", "Teresa", "Lise", "Pauline", + "Tracey", "Leslie", "Connie", "Theresa", "Anita", "Carmen", "Jacqueline", "Sara", + "Lindsay", "Francis", "Danny", "Grace", "Monique", "Audrey", "Crystal", "Cynthia", + "Natalie", "Marlene", "Yvonne", "Doris", "Dana", "Alice", "Claire", "Michele", + "Sylvia", "Sandy", "Jill", "Katherine", "Marion", "Emily", "Kerry", "Lee", + "Monica", "Samantha", "Stacey", "Lynda", "Victoria", "Evelyn", "Jocelyn", "Debra", + "Sonia", "Jenny", "Eva", "Dianne", "Carrie", "June", "Vanessa", "Megan", + "Alison", "Norma", "Francine", "Doreen", "Krista", "Johanne", "Jessica", "Deborah", + "Allison", "Holly", "Judith", "Manon", "Annette", "Peggy", "Ellen", "Renee", + "Helene", "Kate", "Gloria", "Lucie", "Beth", "Frances", "Wanda", "Sophie", + "Natasha", "Lois", "Eileen", "Kimberly", "Carla", "Leanne", "Katie", "Lynne", + "Charlene", "Angie", "Joy", "Lucy", "Leah", "Dominique", "Therese", "Ginette", + "Gina", "Nadine", "Phyllis", "Kathryn", "Arlene", "Amber", "France", "Nadia", + "Lorna", "Lesley", "Heidi", "Florence", "Alexandra", "Pamela", "Martha", "Edith", + "Lauren", "Vicki", "April", "Beverly", "Sally", "Tamara", "Karine", "Olga", + "Dany", "Genevieve", "Jeanne", "Marjorie", "Robyn", "Gwen", "Esther", "Emma", + "Joanna", "Sabrina", "Claudette", "Ana", "Vivian", "Vicky", "Veronica", "Lillian", + "Brigitte", "Charlotte", "Maggie", "Marina", "Noel", "Agnes", "Kristen", "Elena", + "Jessie", "Camille", "Cecile", "Gisele", "Vera", "Stella", "Nina", "Tiffany", + "Clare", "Roxanne", "Mona", "Marian", "Julia", "Bernice", "Ruby", "Marianne", + "Eleanor", "Edna", "Rosemary", "Mel", "Micheline", "Jocelyne", "Beverley", "Celine", + "Lana", "Liz", "Roberta", "Mandy", "Nicola", "Madeleine", "Hong", "Kay", + "Jeanette", "Yvette", "Kimberley", "Lina", "Gladys", "Glenda", "Jeannine", "Colette", + "Erika", "Leona", "Gillian", "Rosa", "Brittany", "Hazel", "Elsie", "Ingrid", + "Stacy", "Lucille", "May", "Kristina", "Simone", "Corinne", "Faye", "Lydia", + "Nora", "Muriel", "Kristin", "Janine", "Jenna", "Loretta", "Lily", "Kayla", + "Candice", "Isabel", "Marcia", "Leigh", "Aline", "Jeannette", "Paulette", "Josephine", + "Chelsea", "Veronique", "Fiona", "Ida", "Lena", "Li", "Juan", "Bernadette", + "Sheryl", "Maxine", "Hilda", "Nikki", "Lou", "Kari", "Yan", "Josie", + "Sonya", "Helena", "Iris", "Ming", "Cassandra", "Geraldine", "Line", "Rachelle", + "Marguerite", "Virginia", "Clara", "Pierrette", "Karin", "Katrina", +}; +} diff --git a/src/modules/person/data/canada/CanadianLastNames.h b/src/modules/person/data/canada/CanadianLastNames.h new file mode 100644 index 00000000..b90827e9 --- /dev/null +++ b/src/modules/person/data/canada/CanadianLastNames.h @@ -0,0 +1,54 @@ +#pragma once + +#include +#include + +namespace faker +{ +const std::vector canadianLastNames = { + "Smith", "Brown", "Tremblay", "Martin", "Roy", "Gagnon", "Lee", "Wilson", + "Johnson", "Macdonald", "Taylor", "Campbell", "Anderson", "Jones", "Leblanc", "Cote", + "Williams", "Miller", "Thompson", "Gauthier", "White", "Morin", "Wong", "Young", + "Bouchard", "Scott", "Stewart", "Pelletier", "Lavoie", "Robinson", "Moore", "Belanger", + "Singh", "Fortin", "Levesque", "Chan", "Reid", "Ross", "Clark", "Johnston", + "Walker", "Thomas", "King", "Gagne", "Bergeron", "Li", "Boucher", "Landry", + "Poirier", "Murray", "Murphy", "Mcdonald", "Wright", "Richard", "Mitchell", "Girard", + "Clarke", "Davis", "Simard", "Kelly", "Lewis", "Graham", "Caron", "Wang", + "Fraser", "Fournier", "Jackson", "Beaulieu", "Wood", "Hall", "Baker", "Chen", + "Hill", "Harris", "Green", "Roberts", "Lapointe", "Bell", "Ouellet", "Patel", + "Watson", "Kennedy", "Cloutier", "Robertson", "Allen", "Lefebvre", "Nguyen", "Hamilton", + "Desjardins", "Adams", "Gill", "Khan", "Cameron", "Morrison", "Dube", "Evans", + "Grant", "Nadeau", "Zhang", "Peters", "Armstrong", "Phillips", "Cook", "Hebert", + "Poulin", "Liu", "Michaud", "Kim", "Martel", "Edwards", "Turner", "Nelson", + "Bennett", "Cooper", "Ferguson", "Gray", "Paquette", "Marshall", "Cormier", "Simpson", + "Harvey", "Mclean", "Collins", "Leclerc", "Bedard", "Grenier", "Russell", "Couture", + "Lessard", "Cyr", "Ward", "Shaw", "Boudreau", "Bernier", "Lambert", "Lalonde", + "Friesen", "Blais", "Proulx", "Morris", "Arsenault", "Henderson", "Parker", "Demers", + "Gilbert", "Hunter", "Gallant", "Davidson", "Dupuis", "Elliott", "Walsh", "Turcotte", + "Lemieux", "Harrison", "Lachance", "Carter", "Richardson", "James", "Beaudoin", "Foster", + "Gosselin", "Mackenzie", "Gordon", "Fisher", "Hughes", "Parent", "Theriault", "Lam", + "Rogers", "Perron", "Gibson", "Ryan", "Morgan", "Langlois", "Savard", "Perreault", + "Patterson", "Thibault", "Mcleod", "Bailey", "Mercier", "Mckay", "Villeneuve", "Thomson", + "Dion", "Fortier", "Charbonneau", "Bernard", "Robert", "Dubois", "Giroux", "Leung", + "Dufour", "Schmidt", "Black", "Paradis", "Davies", "Ouellette", "Houle", "Macleod", + "Menard", "Rose", "Champagne", "Mills", "Plante", "Tran", "Benoit", "Maclean", + "Leduc", "Boisvert", "Wu", "Allard", "Legault", "Hamel", "Wiebe", "Stevens", + "Berube", "Lemay", "Lacroix", "Rousseau", "Labelle", "Renaud", "Bolduc", "Klassen", + "Paul", "Parsons", "Bertrand", "Perry", "Bilodeau", "Henry", "Ellis", "Ng", + "Wallace", "Burns", "Mason", "Hunt", "Park", "Ho", "Fontaine", "Seguin", + "Therrien", "Andrews", "Crawford", "Butler", "Brooks", "Gervais", "Yu", "Kerr", + "Dyck", "Yang", "Alexander", "Price", "Burke", "Saunders", "Boivin", "Mckenzie", + "Richards", "Lawrence", "Holmes", "Dionne", "Goulet", "Sullivan", "Power", "Cole", + "Guay", "Lepage", "Lauzon", "Mackay", "Vincent", "Ali", "Huang", "Vachon", + "Robichaud", "Jacques", "Dunn", "Doucet", "Gravel", "Picard", "Noel", "Doyle", + "Matthews", "Carrier", "Paquet", "Moreau", "Larocque", "Peterson", "Chapman", "Sinclair", + "Palmer", "Sutherland", "Duncan", "Cox", "Stevenson", "Pilon", "Vaillancourt", "Craig", + "Porter", "Savoie", "Jean", "Chartrand", "Godin", "Page", "Mann", "Comeau", + "Cheung", "George", "Boyd", "Daigle", "Desrosiers", "Sharma", "Trudel", "Hart", + "Wells", "Penner", "Robitaille", "Pearson", "Rioux", "Lapierre", "Hansen", "Francis", + "Dumont", "Charron", "Ford", "Douglas", "Fox", "Gingras", "Woods", "Warren", + "Dixon", "Barnes", "Lau", "Chow", "Spencer", "Gendron", "Lin", "Reynolds", + "Audet", "Marchand", "Jensen", "Lavigne", "Cunningham", "Mcintyre", "Bourque", "Lavallee", + "Bradley", "Deschenes", +}; +} diff --git a/src/modules/person/data/canada/CanadianPeopleNames.h b/src/modules/person/data/canada/CanadianPeopleNames.h new file mode 100644 index 00000000..11b50c63 --- /dev/null +++ b/src/modules/person/data/canada/CanadianPeopleNames.h @@ -0,0 +1,16 @@ +#pragma once + +#include "../NameFormats.h" +#include "../PeopleNames.h" +#include "CanadianFirstNames.h" +#include "CanadianLastNames.h" + +namespace faker +{ +const NameFormats canadianPersonNameFormats{{"{firstName} {lastName}", 1}}; + +const PeopleNames canadianPeopleNames{{canadianMalesFirstNames, {}, canadianLastNames, {}, {}}, + {canadianFemalesFirstNames, {}, canadianLastNames, {}, {}}, + canadianPersonNameFormats}; + +}