Skip to content

Commit

Permalink
add canadian people names (#290)
Browse files Browse the repository at this point in the history
  • Loading branch information
cieslarmichal authored Nov 20, 2023
1 parent a2a23fc commit f92f876
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 1 deletion.
4 changes: 3 additions & 1 deletion include/faker-cxx/types/Country.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ enum class Country
Nederlands,
China,
Korea,
Canada,
};

const std::vector<Country> countries{
Expand All @@ -48,7 +49,7 @@ const std::vector<Country> 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)
Expand All @@ -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);
Expand Down
2 changes: 2 additions & 0 deletions src/modules/person/Person.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -69,6 +70,7 @@ const std::map<Country, PeopleNames> 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> sex);
Expand Down
3 changes: 3 additions & 0 deletions src/modules/person/PersonTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -69,6 +70,7 @@ const std::map<Country, PeopleNames> 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<Country, std::string> generatedTestName{
Expand All @@ -88,6 +90,7 @@ const std::map<Country, std::string> generatedTestName{
{Country::Austria, "shouldGenerateAustrianName"}, {Country::Switzerland, "shouldGenerateSwissName"},
{Country::Belgium, "shouldGenerateBelgianName"}, {Country::Nederlands, "shouldGenerateDutchName"},
{Country::China, "shouldGenerateChineseName"}, {Country::Korea, "shouldGenerateKoreanName"},
{Country::Canada, "shouldGenerateCanadianName"},
};
}

Expand Down
96 changes: 96 additions & 0 deletions src/modules/person/data/canada/CanadianFirstNames.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#pragma once

#include <string>
#include <vector>

namespace faker
{
const std::vector<std::string> 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<std::string> 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",
};
}
54 changes: 54 additions & 0 deletions src/modules/person/data/canada/CanadianLastNames.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#pragma once

#include <string>
#include <vector>

namespace faker
{
const std::vector<std::string> 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",
};
}
16 changes: 16 additions & 0 deletions src/modules/person/data/canada/CanadianPeopleNames.h
Original file line number Diff line number Diff line change
@@ -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};

}

0 comments on commit f92f876

Please sign in to comment.