R/en_GB.R

## automotive -------------------------
automotive_en_GB = R6Class(
  "automotive_en_GB",
  inherit = automotive_init,
  cloneable = FALSE,
  private = list(
    # from
    # https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_United_Kingdom
    license_formats = c(
      '??## ???',
      '??##???')
  )
)
## person --------------------------
person_en_GB = R6Class(
  "person_en_GB",
  inherit = person_en,
  cloneable = FALSE,
  private = list(
    prefixes_female = c('Mrs.', 'Ms.', 'Miss', 'Dr.'),
    prefixes_male = c('Mr.', 'Dr.'),

    formats = 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}',
      '{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}',
      '{prefix_male} {first_name_male} {last_name}',
      '{prefix_female} {first_name_female} {last_name}',
      '{prefix_male} {first_name_male} {last_name}',
      '{prefix_female} {first_name_female} {last_name}'),

    # Names from
    # http://webarchive.nationalarchives.gov.uk/20160105160709/http://ons.gov.uk/ons/publications/re-reference-tables.html?edition=tcm%3A77-243767

    first_names_male = c(
      'David', 'Paul', 'Christopher', 'Thomas',
      'John', 'Mark', 'James',
      'Stephen', 'Andrew', 'Jack', 'Michael',
      'Daniel', 'Peter', 'Richard',
      'Matthew', 'Robert', 'Ryan', 'Joshua',
      'Alan', 'Ian', 'Simon', 'Luke',
      'Samuel', 'Jordan', 'Anthony', 'Adam',
      'Lee', 'Alexander', 'William',
      'Kevin', 'Darren', 'Benjamin', 'Philip',
      'Gary', 'Joseph', 'Brian',
      'Steven', 'Liam', 'Keith', 'Martin',
      'Jason', 'Jonathan', 'Jake',
      'Graham', 'Nicholas', 'Craig', 'George',
      'Colin', 'Neil', 'Lewis',
      'Nigel', 'Oliver', 'Timothy', 'Stuart',
      'Kenneth', 'Raymond', 'Jamie',
      'Nathan', 'Geoffrey', 'Connor', 'Terence',
      'Trevor', 'Adrian', 'Harry',
      'Malcolm', 'Scott', 'Callum', 'Wayne',
      'Aaron', 'Barry', 'Ashley',
      'Bradley', 'Patrick', 'Gareth', 'Jacob',
      'Sean', 'Kieran', 'Derek',
      'Carl', 'Dean', 'Charles', 'Sam',
      'Shaun', 'Ben', 'Roger', 'Mohammed',
      'Leslie', 'Ronald', 'Kyle', 'Clive',
      'Edward', 'Antony', 'Jeremy',
      'Justin', 'Jeffrey', 'Christian', 'Roy',
      'Karl', 'Alex', 'Gordon',
      'Dominic', 'Joe', 'Marc', 'Reece',
      'Dennis', 'Russell', 'Gavin', 'Rhys',
      'Phillip', 'Allan', 'Robin', 'Charlie',
      'Gerald', 'Ross', 'Francis',
      'Eric', 'Julian', 'Bernard', 'Dale',
      'Donald', 'Damian', 'Frank',
      'Shane', 'Cameron', 'Norman', 'Duncan',
      'Louis', 'Frederick', 'Tony',
      'Howard', 'Conor', 'Douglas', 'Garry',
      'Elliot', 'Marcus', 'Arthur',
      'Vincent', 'Max', 'Mathew', 'Abdul',
      'Henry', 'Martyn', 'Ricky',
      'Leonard', 'Lawrence', 'Glen',
      'Mitchell', 'Gerard', 'Gregory', 'Iain',
      'Billy', 'Bryan', 'Joel', 'Clifford',
      'Josh', 'Leon', 'Stewart',
      'Mohammad', 'Dylan', 'Graeme', 'Terry',
      'Guy', 'Elliott', 'Stanley',
      'Danny', 'Brandon', 'Victor', 'Toby',
      'Hugh', 'Mohamed', 'Brett',
      'Albert', 'Tom', 'Declan', 'Maurice',
      'Glenn', 'Leigh', 'Denis',
      'Damien', 'Bruce', 'Jay', 'Owen'),

    first_names_female = c(
      'Susan', 'Sarah', 'Rebecca', 'Linda',
      'Julie', 'Claire', 'Laura',
      'Lauren', 'Christine', 'Karen',
      'Nicola', 'Gemma', 'Jessica',
      'Margaret', 'Jacqueline', 'Emma',
      'Charlotte', 'Janet', 'Deborah',
      'Lisa', 'Hannah', 'Patricia',
      'Tracey', 'Joanne', 'Sophie', 'Carol',
      'Jane', 'Michelle', 'Victoria',
      'Amy', 'Elizabeth', 'Helen', 'Samantha',
      'Emily', 'Mary', 'Diane', 'Rachel',
      'Anne', 'Sharon', 'Ann', 'Tracy',
      'Amanda', 'Jennifer', 'Chloe',
      'Angela', 'Louise', 'Katie', 'Lucy',
      'Barbara', 'Alison', 'Sandra',
      'Caroline', 'Clare', 'Kelly', 'Bethany',
      'Gillian', 'Natalie', 'Jade', 'Pauline',
      'Megan', 'Elaine', 'Alice',
      'Lesley', 'Catherine', 'Hayley',
      'Pamela', 'Danielle', 'Holly', 'Wendy',
      'Abigail', 'Valerie', 'Olivia', 'Jean',
      'Dawn', 'Donna', 'Stephanie',
      'Leanne', 'Kathleen', 'Natasha',
      'Denise', 'Sally', 'Katherine',
      'Georgia', 'Maureen', 'Maria', 'Zoe',
      'Judith', 'Kerry', 'Debra',
      'Melanie', 'Stacey', 'Eleanor',
      'Paula', 'Shannon', 'Sheila', 'Joanna',
      'Paige', 'Janice', 'Lorraine', 'Georgina',
      'Lynn', 'Andrea', 'Suzanne',
      'Nicole', 'Yvonne', 'Chelsea',
      'Lynne', 'Anna', 'Kirsty', 'Shirley',
      'Alexandra', 'Marion', 'Beverley',
      'Melissa', 'Rosemary', 'Kimberley',
      'Carole', 'Fiona', 'Kate', 'Joan',
      'Marie', 'Jenna', 'Marilyn', 'Jodie',
      'June', 'Grace', 'Mandy', 'Rachael',
      'Lynda', 'Tina', 'Kathryn',
      'Molly', 'Jayne', 'Amber', 'Marian',
      'Jasmine', 'Brenda', 'Sara',
      'Kayleigh', 'Teresa', 'Harriet',
      'Julia', 'Ashleigh', 'Heather', 'Kim',
      'Ruth', 'Jemma', 'Carly', 'Leah',
      'Eileen', 'Francesca', 'Naomi',
      'Hilary', 'Abbie', 'Sylvia', 'Katy',
      'Irene', 'Cheryl', 'Rosie',
      'Dorothy', 'Aimee', 'Vanessa',
      'Ellie', 'Frances', 'Sian', 'Josephine',
      'Gail', 'Jill', 'Lydia', 'Joyce',
      'Charlene', 'Hollie', 'Hazel',
      'Annette', 'Bethan', 'Amelia',
      'Beth', 'Rita', 'Geraldine', 'Diana',
      'Lindsey', 'Carolyn'),

    first_names = c(
      'David', 'Paul', 'Christopher', 'Thomas',
      'John', 'Mark', 'James',
      'Stephen', 'Andrew', 'Jack', 'Michael',
      'Daniel', 'Peter', 'Richard',
      'Matthew', 'Robert', 'Ryan', 'Joshua',
      'Alan', 'Ian', 'Simon', 'Luke',
      'Samuel', 'Jordan', 'Anthony', 'Adam',
      'Lee', 'Alexander', 'William',
      'Kevin', 'Darren', 'Benjamin', 'Philip',
      'Gary', 'Joseph', 'Brian',
      'Steven', 'Liam', 'Keith', 'Martin',
      'Jason', 'Jonathan', 'Jake',
      'Graham', 'Nicholas', 'Craig', 'George',
      'Colin', 'Neil', 'Lewis',
      'Nigel', 'Oliver', 'Timothy', 'Stuart',
      'Kenneth', 'Raymond', 'Jamie',
      'Nathan', 'Geoffrey', 'Connor', 'Terence',
      'Trevor', 'Adrian', 'Harry',
      'Malcolm', 'Scott', 'Callum', 'Wayne',
      'Aaron', 'Barry', 'Ashley',
      'Bradley', 'Patrick', 'Gareth', 'Jacob',
      'Sean', 'Kieran', 'Derek',
      'Carl', 'Dean', 'Charles', 'Sam',
      'Shaun', 'Ben', 'Roger', 'Mohammed',
      'Leslie', 'Ronald', 'Kyle', 'Clive',
      'Edward', 'Antony', 'Jeremy',
      'Justin', 'Jeffrey', 'Christian', 'Roy',
      'Karl', 'Alex', 'Gordon',
      'Dominic', 'Joe', 'Marc', 'Reece',
      'Dennis', 'Russell', 'Gavin', 'Rhys',
      'Phillip', 'Allan', 'Robin', 'Charlie',
      'Gerald', 'Ross', 'Francis',
      'Eric', 'Julian', 'Bernard', 'Dale',
      'Donald', 'Damian', 'Frank',
      'Shane', 'Cameron', 'Norman', 'Duncan',
      'Louis', 'Frederick', 'Tony',
      'Howard', 'Conor', 'Douglas', 'Garry',
      'Elliot', 'Marcus', 'Arthur',
      'Vincent', 'Max', 'Mathew', 'Abdul',
      'Henry', 'Martyn', 'Ricky',
      'Leonard', 'Lawrence', 'Glen',
      'Mitchell', 'Gerard', 'Gregory', 'Iain',
      'Billy', 'Bryan', 'Joel', 'Clifford',
      'Josh', 'Leon', 'Stewart',
      'Mohammad', 'Dylan', 'Graeme', 'Terry',
      'Guy', 'Elliott', 'Stanley',
      'Danny', 'Brandon', 'Victor', 'Toby',
      'Hugh', 'Mohamed', 'Brett',
      'Albert', 'Tom', 'Declan', 'Maurice',
      'Glenn', 'Leigh', 'Denis',
      'Damien', 'Bruce', 'Jay', 'Owen',

      'Susan', 'Sarah', 'Rebecca', 'Linda',
      'Julie', 'Claire', 'Laura',
      'Lauren', 'Christine', 'Karen',
      'Nicola', 'Gemma', 'Jessica',
      'Margaret', 'Jacqueline', 'Emma',
      'Charlotte', 'Janet', 'Deborah',
      'Lisa', 'Hannah', 'Patricia',
      'Tracey', 'Joanne', 'Sophie', 'Carol',
      'Jane', 'Michelle', 'Victoria',
      'Amy', 'Elizabeth', 'Helen', 'Samantha',
      'Emily', 'Mary', 'Diane', 'Rachel',
      'Anne', 'Sharon', 'Ann', 'Tracy',
      'Amanda', 'Jennifer', 'Chloe',
      'Angela', 'Louise', 'Katie', 'Lucy',
      'Barbara', 'Alison', 'Sandra',
      'Caroline', 'Clare', 'Kelly', 'Bethany',
      'Gillian', 'Natalie', 'Jade', 'Pauline',
      'Megan', 'Elaine', 'Alice',
      'Lesley', 'Catherine', 'Hayley',
      'Pamela', 'Danielle', 'Holly', 'Wendy',
      'Abigail', 'Valerie', 'Olivia', 'Jean',
      'Dawn', 'Donna', 'Stephanie',
      'Leanne', 'Kathleen', 'Natasha',
      'Denise', 'Sally', 'Katherine',
      'Georgia', 'Maureen', 'Maria', 'Zoe',
      'Judith', 'Kerry', 'Debra',
      'Melanie', 'Stacey', 'Eleanor',
      'Paula', 'Shannon', 'Sheila', 'Joanna',
      'Paige', 'Janice', 'Lorraine', 'Georgina',
      'Lynn', 'Andrea', 'Suzanne',
      'Nicole', 'Yvonne', 'Chelsea',
      'Lynne', 'Anna', 'Kirsty', 'Shirley',
      'Alexandra', 'Marion', 'Beverley',
      'Melissa', 'Rosemary', 'Kimberley',
      'Carole', 'Fiona', 'Kate', 'Joan',
      'Marie', 'Jenna', 'Marilyn', 'Jodie',
      'June', 'Grace', 'Mandy', 'Rachael',
      'Lynda', 'Tina', 'Kathryn',
      'Molly', 'Jayne', 'Amber', 'Marian',
      'Jasmine', 'Brenda', 'Sara',
      'Kayleigh', 'Teresa', 'Harriet',
      'Julia', 'Ashleigh', 'Heather', 'Kim',
      'Ruth', 'Jemma', 'Carly', 'Leah',
      'Eileen', 'Francesca', 'Naomi',
      'Hilary', 'Abbie', 'Sylvia', 'Katy',
      'Irene', 'Cheryl', 'Rosie',
      'Dorothy', 'Aimee', 'Vanessa',
      'Ellie', 'Frances', 'Sian', 'Josephine',
      'Gail', 'Jill', 'Lydia', 'Joyce',
      'Charlene', 'Hollie', 'Hazel',
      'Annette', 'Bethan', 'Amelia',
      'Beth', 'Rita', 'Geraldine', 'Diana',
      'Lindsey', 'Carolyn'),

    last_names = list(
      c("Savage", 0.04),
      c("Winter", 0.03),
      c("Metcalfe", 0.03),
      c("Harper", 0.06),
      c("Burgess", 0.06),
      c("Bailey", 0.15),
      c("Potts", 0.03),
      c("Boyle", 0.03),
      c("Brown", 0.51),
      c("Jennings", 0.05),
      c("Payne", 0.09),
      c("Day", 0.09),
      c("Holland", 0.07),
      c("Higgins", 0.05),
      c("Rhodes", 0.04),
      c("Hancock", 0.04),
      c("Howells", 0.03),
      c("Fowler", 0.04),
      c("Sims", 0.03),
      c("Thomas", 0.35),
      c("Parker", 0.17),
      c("Bentley", 0.04),
      c("Barnett", 0.05),
      c("Manning", 0.03),
      c("Collier", 0.03),
      c("Holloway", 0.03),
      c("Hartley", 0.04),
      c("George", 0.05),
      c("Tomlinson", 0.04),
      c("Howard", 0.09),
      c("Long", 0.06),
      c("Farmer", 0.03),
      c("Collins", 0.15),
      c("Rice", 0.03),
      c("Townsend", 0.04),
      c("Rees", 0.07),
      c("Bruce", 0.03),
      c("Hammond", 0.05),
      c("Ford", 0.09),
      c("Tucker", 0.05),
      c("Wallis", 0.03),
      c("Hamilton", 0.06),
      c("Ferguson", 0.04),
      c("Hooper", 0.03),
      c("Francis", 0.07),
      c("Reeves", 0.04),
      c("Barlow", 0.04),
      c("Short", 0.04),
      c("Cunningham", 0.05),
      c("Hopkins", 0.06),
      c("Nicholson", 0.06),
      c("Archer", 0.04),
      c("Green", 0.25),
      c("Glover", 0.04),
      c("Gibson", 0.09),
      c("Spencer", 0.08),
      c("Warner", 0.04),
      c("Webb", 0.12),
      c("Whitehouse", 0.03),
      c("Dean", 0.06),
      c("Griffiths", 0.16),
      c("Clark", 0.2),
      c("Hardy", 0.05),
      c("Iqbal", 0.03),
      c("Baldwin", 0.04),
      c("O\'Neill", 0.06),
      c("Blake", 0.05),
      c("Lees", 0.03),
      c("Harvey", 0.1),
      c("Clarke", 0.24),
      c("Daniels", 0.04),
      c("Browne", 0.03),
      c("Macdonald", 0.04),
      c("Kirk", 0.04),
      c("Khan", 0.14),
      c("Davidson", 0.05),
      c("Dale", 0.04),
      c("Sanders", 0.04),
      c("Wilkins", 0.04),
      c("Connor", 0.03),
      c("Daly", 0.03),
      c("Lane", 0.06),
      c("Kennedy", 0.06),
      c("Bray", 0.03),
      c("Burrows", 0.04),
      c("Hayes", 0.07),
      c("Wyatt", 0.03),
      c("Gould", 0.03),
      c("Dyer", 0.03),
      c("Nash", 0.05),
      c("Bryan", 0.03),
      c("Pope", 0.03),
      c("Fraser", 0.04),
      c("Steele", 0.03),
      c("Walsh", 0.09),
      c("Wade", 0.04),
      c("Marsden", 0.03),
      c("Humphries", 0.03),
      c("O\'Brien", 0.08),
      c("Thompson", 0.28),
      c("Lord", 0.03),
      c("Coleman", 0.06),
      c("Jarvis", 0.04),
      c("Noble", 0.03),
      c("Williamson", 0.06),
      c("Carpenter", 0.03),
      c("Gardner", 0.06),
      c("Farrell", 0.04),
      c("Clayton", 0.05),
      c("Akhtar", 0.05),
      c("Gallagher", 0.05),
      c("Skinner", 0.04),
      c("Birch", 0.04),
      c("Kay", 0.04),
      c("Barrett", 0.07),
      c("Bates", 0.06),
      c("Lucas", 0.04),
      c("O\'Connor", 0.06),
      c("Chamberlain", 0.03),
      c("Chapman", 0.12),
      c("Ryan", 0.08),
      c("Thorpe", 0.04),
      c("Lawson", 0.04),
      c("Howell", 0.04),
      c("Martin", 0.23),
      c("Kelly", 0.16),
      c("Dobson", 0.04),
      c("Stevens", 0.1),
      c("Brennan", 0.04),
      c("Lloyd", 0.11),
      c("Quinn", 0.05),
      c("Morton", 0.04),
      c("Wilson", 0.35),
      c("Barnes", 0.11),
      c("Henry", 0.03),
      c("Smith", 1.15),
      c("Pritchard", 0.05),
      c("Phillips", 0.18),
      c("Dixon", 0.1),
      c("Sharpe", 0.03),
      c("Robertson", 0.07),
      c("White", 0.27),
      c("Bird", 0.06),
      c("Abbott", 0.04),
      c("Kirby", 0.04),
      c("Hussain", 0.11),
      c("Barber", 0.05),
      c("Harris", 0.25),
      c("Doyle", 0.05),
      c("Jordan", 0.05),
      c("Burns", 0.06),
      c("Hodgson", 0.06),
      c("Atkins", 0.04),
      c("Stokes", 0.05),
      c("Rogers", 0.12),
      c("Parkes", 0.03),
      c("Brookes", 0.04),
      c("Herbert", 0.03),
      c("Gordon", 0.05),
      c("Kemp", 0.05),
      c("Webster", 0.07),
      c("Sinclair", 0.03),
      c("McLean", 0.03),
      c("Saunders", 0.09),
      c("Stephens", 0.05),
      c("Newton", 0.07),
      c("Potter", 0.05),
      c("Storey", 0.03),
      c("Stanley", 0.04),
      c("Turnbull", 0.03),
      c("Duncan", 0.03),
      c("Rose", 0.08),
      c("Mills", 0.11),
      c("Sheppard", 0.03),
      c("Butcher", 0.03),
      c("Fry", 0.03),
      c("Ross", 0.06),
      c("Shepherd", 0.06),
      c("Goodwin", 0.05),
      c("Holt", 0.05),
      c("Haynes", 0.04),
      c("Cook", 0.15),
      c("Ward", 0.21),
      c("Godfrey", 0.03),
      c("Stone", 0.07),
      c("Dodd", 0.04),
      c("Parsons", 0.07),
      c("Ingram", 0.03),
      c("Nixon", 0.03),
      c("Evans", 0.39),
      c("Hargreaves", 0.03),
      c("Owen", 0.11),
      c("Chan", 0.03),
      c("Connolly", 0.03),
      c("Charlton", 0.03),
      c("Middleton", 0.04),
      c("Hyde", 0.03),
      c("Patel", 0.24),
      c("Owens", 0.03),
      c("Lamb", 0.04),
      c("Palmer", 0.11),
      c("Cooper", 0.22),
      c("McCarthy", 0.06),
      c("Black", 0.04),
      c("Dickinson", 0.04),
      c("Gilbert", 0.05),
      c("Leach", 0.03),
      c("North", 0.03),
      c("Byrne", 0.06),
      c("Frost", 0.05),
      c("Simmons", 0.04),
      c("Matthews", 0.11),
      c("Alexander", 0.04),
      c("Ahmed", 0.1),
      c("Gibbons", 0.03),
      c("Stevenson", 0.05),
      c("Rowley", 0.03),
      c("Miles", 0.05),
      c("Hanson", 0.03),
      c("Bolton", 0.03),
      c("Craig", 0.03),
      c("Ali", 0.12),
      c("Carroll", 0.04),
      c("Allan", 0.03),
      c("Sanderson", 0.03),
      c("Fletcher", 0.1),
      c("Burton", 0.08),
      c("Oliver", 0.07),
      c("Davison", 0.04),
      c("Douglas", 0.04),
      c("Field", 0.04),
      c("Pickering", 0.03),
      c("Pugh", 0.04),
      c("Rowe", 0.05),
      c("Mahmood", 0.03),
      c("Sykes", 0.03),
      c("Crawford", 0.03),
      c("Williams", 0.66),
      c("Parkin", 0.03),
      c("Patterson", 0.04),
      c("Power", 0.03),
      c("Price", 0.17),
      c("Murphy", 0.14),
      c("Hale", 0.03),
      c("Nicholls", 0.06),
      c("Hall", 0.25),
      c("Jones", 0.94),
      c("Hughes", 0.26),
      c("Stephenson", 0.05),
      c("Morley", 0.04),
      c("Knight", 0.11),
      c("Kerr", 0.03),
      c("Heath", 0.04),
      c("Pollard", 0.03),
      c("Lowe", 0.07),
      c("O\'Sullivan", 0.04),
      c("Buckley", 0.05),
      c("Bond", 0.05),
      c("Dennis", 0.03),
      c("Lewis", 0.25),
      c("Weston", 0.04),
      c("Joyce", 0.03),
      c("Reynolds", 0.09),
      c("Bishop", 0.06),
      c("Norris", 0.04),
      c("Barry", 0.03),
      c("Whittaker", 0.04),
      c("Carey", 0.03),
      c("Hill", 0.22),
      c("Kent", 0.04),
      c("Ashton", 0.04),
      c("Wilkinson", 0.13),
      c("Powell", 0.12),
      c("Henderson", 0.06),
      c("Freeman", 0.06),
      c("Dunn", 0.07),
      c("Kaur", 0.09),
      c("French", 0.04),
      c("Parry", 0.06),
      c("Walton", 0.06),
      c("Fisher", 0.1),
      c("Naylor", 0.03),
      c("Duffy", 0.04),
      c("Humphreys", 0.04),
      c("Randall", 0.03),
      c("Bevan", 0.03),
      c("Doherty", 0.03),
      c("Moore", 0.21),
      c("Armstrong", 0.07),
      c("Sullivan", 0.05),
      c("Swift", 0.03),
      c("Pearce", 0.09),
      c("Tyler", 0.03),
      c("Bradshaw", 0.04),
      c("Allen", 0.19),
      c("Mellor", 0.03),
      c("Whitehead", 0.05),
      c("Jackson", 0.24),
      c("Grant", 0.07),
      c("Fox", 0.09),
      c("Wright", 0.28),
      c("Anderson", 0.13),
      c("Foster", 0.13),
      c("Gibbs", 0.04),
      c("Butler", 0.11),
      c("Jenkins", 0.1),
      c("John", 0.04),
      c("Morrison", 0.04),
      c("Talbot", 0.03),
      c("Blackburn", 0.03),
      c("Osborne", 0.05),
      c("Flynn", 0.04),
      c("Richards", 0.14),
      c("Hurst", 0.03),
      c("Bibi", 0.05),
      c("Houghton", 0.03),
      c("Johnson", 0.34),
      c("Yates", 0.06),
      c("Mistry", 0.03),
      c("Donnelly", 0.03),
      c("Parkinson", 0.04),
      c("Thomson", 0.05),
      c("Woods", 0.07),
      c("Todd", 0.04),
      c("Dawson", 0.08),
      c("Hart", 0.07),
      c("Graham", 0.1),
      c("Berry", 0.07),
      c("Willis", 0.05),
      c("Miah", 0.04),
      c("Brooks", 0.09),
      c("Horton", 0.03),
      c("Riley", 0.07),
      c("Lambert", 0.05),
      c("Waters", 0.04),
      c("Lynch", 0.05),
      c("Moss", 0.06),
      c("Slater", 0.05),
      c("Knowles", 0.04),
      c("Benson", 0.03),
      c("Adams", 0.13),
      c("King", 0.2),
      c("Davies", 0.48),
      c("Richardson", 0.15),
      c("Vincent", 0.03),
      c("Holmes", 0.11),
      c("Conway", 0.03),
      c("Marshall", 0.14),
      c("Faulkner", 0.03),
      c("Garner", 0.03),
      c("Booth", 0.08),
      c("Harrison", 0.2),
      c("Campbell", 0.11),
      c("Cole", 0.08),
      c("Goddard", 0.04),
      c("Walters", 0.05),
      c("Ellis", 0.13),
      c("Edwards", 0.27),
      c("Peters", 0.04),
      c("Atkinson", 0.08),
      c("Wood", 0.24),
      c("Briggs", 0.04),
      c("Elliott", 0.09),
      c("Chandler", 0.03),
      c("Hope", 0.03),
      c("Hunter", 0.07),
      c("Newman", 0.07),
      c("Pratt", 0.03),
      c("Rahman", 0.03),
      c("Hicks", 0.04),
      c("Cox", 0.14),
      c("Reid", 0.07),
      c("Morris", 0.21),
      c("Banks", 0.04),
      c("Myers", 0.03),
      c("Mitchell", 0.16),
      c("Davey", 0.04),
      c("Peacock", 0.03),
      c("Reed", 0.07),
      c("Carter", 0.15),
      c("Miller", 0.14),
      c("Perkins", 0.04),
      c("Read", 0.05),
      c("Hilton", 0.03),
      c("Moran", 0.03),
      c("Welch", 0.03),
      c("Vaughan", 0.04),
      c("Clements", 0.03),
      c("Griffin", 0.05),
      c("Russell", 0.1),
      c("O\'Donnell", 0.03),
      c("Hobbs", 0.03),
      c("Marsh", 0.07),
      c("Porter", 0.07),
      c("Gill", 0.08),
      c("Leonard", 0.03),
      c("McKenzie", 0.03),
      c("Thornton", 0.04),
      c("Fitzgerald", 0.03),
      c("Greenwood", 0.05),
      c("Pearson", 0.1),
      c("James", 0.19),
      c("Coles", 0.03),
      c("Roberts", 0.33),
      c("Nelson", 0.05),
      c("Forster", 0.03),
      c("Gough", 0.03),
      c("Mann", 0.05),
      c("Law", 0.03),
      c("Barker", 0.1),
      c("Cartwright", 0.04),
      c("Bradley", 0.08),
      c("Sharp", 0.05),
      c("Warren", 0.06),
      c("Summers", 0.03),
      c("Little", 0.04),
      c("Perry", 0.08),
      c("Fuller", 0.04),
      c("West", 0.09),
      c("Mason", 0.12),
      c("Finch", 0.03),
      c("Norton", 0.03),
      c("Burke", 0.05),
      c("Holden", 0.04),
      c("Lee", 0.2),
      c("Smart", 0.04),
      c("Bull", 0.04),
      c("Bryant", 0.04),
      c("Gray", 0.12),
      c("Watts", 0.08),
      c("Brady", 0.03),
      c("Baker", 0.2),
      c("Barton", 0.05),
      c("Davis", 0.17),
      c("Baxter", 0.05),
      c("Taylor", 0.53),
      c("Carr", 0.07),
      c("Wong", 0.04),
      c("Cameron", 0.03),
      c("Gardiner", 0.03),
      c("Hawkins", 0.07),
      c("Shaw", 0.15),
      c("Wallace", 0.05),
      c("Young", 0.16),
      c("Shah", 0.06),
      c("Gregory", 0.07),
      c("Ball", 0.08),
      c("Norman", 0.04),
      c("Lawrence", 0.09),
      c("Bowen", 0.04),
      c("Wheeler", 0.05),
      c("Bartlett", 0.04),
      c("Sutton", 0.06),
      c("Lyons", 0.03),
      c("Hutchinson", 0.05),
      c("Poole", 0.05),
      c("Cooke", 0.06),
      c("Franklin", 0.03),
      c("Howe", 0.04),
      c("Walker", 0.27),
      c("Johnston", 0.05),
      c("Austin", 0.05),
      c("Chadwick", 0.03),
      c("Bell", 0.15),
      c("Wall", 0.04),
      c("Woodward", 0.05),
      c("Preston", 0.04),
      c("Bennett", 0.16),
      c("Murray", 0.1),
      c("Begum", 0.13),
      c("McDonald", 0.06),
      c("Hudson", 0.07),
      c("Cross", 0.06),
      c("Singh", 0.13),
      c("Howarth", 0.03),
      c("Hewitt", 0.05),
      c("Curtis", 0.06),
      c("Harding", 0.07),
      c("May", 0.05),
      c("Wells", 0.07),
      c("Giles", 0.03),
      c("Watson", 0.17),
      c("Nolan", 0.03),
      c("Andrews", 0.09),
      c("Hayward", 0.04),
      c("Schofield", 0.04),
      c("Hunt", 0.12),
      c("Robson", 0.06),
      c("Arnold", 0.05),
      c("Morgan", 0.19),
      c("Coates", 0.03),
      c("Page", 0.07),
      c("Simpson", 0.13),
      c("Stewart", 0.09),
      c("Robinson", 0.29),
      c("Fleming", 0.03),
      c("Scott", 0.18),
      c("Chambers", 0.06),
      c("Turner", 0.23),
      c("Watkins", 0.06))
  )
)

## address ----------------------
address_en_GB = R6Class(
  "address_en_GB",
  inherit = address_en,
  cloneable = FALSE,
  private = list(
    city_prefixes = c(
      'North', 'East', 'West', 'South', 'New', 'Lake', 'Port'),

    city_suffixes = c(
      'town',
      'ton',
      'land',
      'ville',
      'berg',
      'burgh',
      'borough',
      'bury',
      'view',
      'port',
      'mouth',
      'stad',
      'furt',
      'chester',
      'mouth',
      'fort',
      'haven',
      'side',
      'shire'),

    building_number_formats = c('#', '##', '###'),
    street_suffixes = c(
      'alley',
      'avenue',
      'branch',
      'bridge',
      'brook',
      'brooks',
      'burg',
      'burgs',
      'bypass',
      'camp',
      'canyon',
      'cape',
      'causeway',
      'center',
      'centers',
      'circle',
      'circles',
      'cliff',
      'cliffs',
      'club',
      'common',
      'corner',
      'corners',
      'course',
      'court',
      'courts',
      'cove',
      'coves',
      'creek',
      'crescent',
      'crest',
      'crossing',
      'crossroad',
      'curve',
      'dale',
      'dam',
      'divide',
      'drive',
      'drive',
      'drives',
      'estate',
      'estates',
      'expressway',
      'extension',
      'extensions',
      'fall',
      'falls',
      'ferry',
      'field',
      'fields',
      'flat',
      'flats',
      'ford',
      'fords',
      'forest',
      'forge',
      'forges',
      'fork',
      'forks',
      'fort',
      'freeway',
      'garden',
      'gardens',
      'gateway',
      'glen',
      'glens',
      'green',
      'greens',
      'grove',
      'groves',
      'harbor',
      'harbors',
      'haven',
      'heights',
      'highway',
      'hill',
      'hills',
      'hollow',
      'inlet',
      'inlet',
      'island',
      'island',
      'islands',
      'islands',
      'isle',
      'isle',
      'junction',
      'junctions',
      'key',
      'keys',
      'knoll',
      'knolls',
      'lake',
      'lakes',
      'land',
      'landing',
      'lane',
      'light',
      'lights',
      'loaf',
      'lock',
      'locks',
      'locks',
      'lodge',
      'lodge',
      'loop',
      'mall',
      'manor',
      'manors',
      'meadow',
      'meadows',
      'mews',
      'mill',
      'mills',
      'mission',
      'mission',
      'motorway',
      'mount',
      'mountain',
      'mountain',
      'mountains',
      'mountains',
      'neck',
      'orchard',
      'oval',
      'overpass',
      'park',
      'parks',
      'parkway',
      'parkways',
      'pass',
      'passage',
      'path',
      'pike',
      'pine',
      'pines',
      'place',
      'plain',
      'plains',
      'plains',
      'plaza',
      'plaza',
      'point',
      'points',
      'port',
      'port',
      'ports',
      'ports',
      'prairie',
      'prairie',
      'radial',
      'ramp',
      'ranch',
      'rapid',
      'rapids',
      'rest',
      'ridge',
      'ridges',
      'river',
      'road',
      'road',
      'roads',
      'roads',
      'route',
      'row',
      'rue',
      'run',
      'shoal',
      'shoals',
      'shore',
      'shores',
      'skyway',
      'spring',
      'springs',
      'springs',
      'spur',
      'spurs',
      'square',
      'square',
      'squares',
      'squares',
      'station',
      'station',
      'stravenue',
      'stravenue',
      'stream',
      'stream',
      'street',
      'street',
      'streets',
      'summit',
      'summit',
      'terrace',
      'throughway',
      'trace',
      'track',
      'trafficway',
      'trail',
      'trail',
      'tunnel',
      'tunnel',
      'turnpike',
      'turnpike',
      'underpass',
      'union',
      'unions',
      'valley',
      'valleys',
      'via',
      'viaduct',
      'view',
      'views',
      'village',
      'village',
      'villages',
      'ville',
      'vista',
      'vista',
      'walk',
      'walks',
      'wall',
      'way',
      'ways',
      'well',
      'wells'),

    postcode_formats = c(
      'AN NEE',
      'ANN NEE',
      'PN NEE',
      'PNN NEE',
      'ANC NEE',
      'PND NEE'),

    postcode_sets = list(
      ' ' = ' ',
      'N' = as.character(seq(0, 9)),
      'A' = c("B", "E", "G", "L", "M", "N", "S", "W"),
      'B' = strsplit('ABCDEFGHKLMNOPQRSTUVWXY', split = "")[[1]],
      'C' = strsplit('ABCDEFGHJKSTUW', split = "")[[1]],
      'D' = strsplit('ABEHMNPRVWXY', split = "")[[1]],
      'E' = strsplit('ABDEFGHJLNPQRSTUWXYZ', split = "")[[1]],
      'P' = c(
        'AB', 'AL', 'BA', 'BB', 'BD', 'BH', 'BL', 'BN', 'BR',
        'BS', 'BT', 'CA', 'CB', 'CF', 'CH', 'CM', 'CO', 'CR', 'CT',
        'CV', 'CW', 'DA', 'DD', 'DE', 'DG', 'DH', 'DL', 'DN', 'DT',
        'DY',  'EC', 'EH', 'EN', 'EX', 'FK', 'FY',  'GL',
        'GY', 'GU', 'HA', 'HD', 'HG', 'HP', 'HR', 'HS', 'HU', 'HX',
        'IG', 'IM', 'IP', 'IV', 'JE', 'KA', 'KT', 'KW', 'KY',
        'LA', 'LD', 'LE', 'LL', 'LN', 'LS', 'LU',  'ME', 'MK',
        'ML',  'NE', 'NG', 'NN', 'NP', 'NR', 'NW', 'OL', 'OX',
        'PA', 'PE', 'PH', 'PL', 'PO', 'PR', 'RG', 'RH', 'RM',
        'SA', 'SE', 'SG', 'SK', 'SL', 'SM', 'SN', 'SO', 'SP', 'SR',
        'SS', 'ST', 'SW', 'SY', 'TA', 'TD', 'TF', 'TN', 'TQ', 'TR',
        'TS', 'TW', 'UB',  'WA', 'WC', 'WD', 'WF', 'WN', 'WR',
        'WS', 'WV', 'YO', 'ZE')),

    city_formats = c(
      '{city_prefix} {first_name}{city_suffix}',
      '{city_prefix} {first_name}',
      '{first_name}{city_suffix}',
      '{last_name}{city_suffix}'),

    street_name_formats = c(
      '{first_name} {street_suffix}',
      '{last_name} {street_suffix}'),

    first_names = (person_en_GB$new())$.__enclos_env__$private$first_names,
    first_name = (person_en_GB$new())$first_name,
    last_names = (person_en_GB$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_GB$new())$last_name,

    street_address_formats = c(
      '{building_number} {street_name}',
      '{secondary_address}\n{street_name}'),

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

    secondary_address_formats = c(
      'Flat #', 'Flat ##', 'Flat ##?', 'Studio #', 'Studio ##', 'Studio ##?')
  ),

  public = list(
    postcode = function() {
      postcode = ""
      patterns = private$random_element(private$postcode_formats)
      patterns = strsplit(patterns, split = "")[[1]]
      for (i in patterns) {
        postcode_element = private$random_element(private$postcode_sets[[i]])
        postcode = str_c(postcode, postcode_element)
      }
      return(postcode)
    },

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

    secondary_address = function() {
      temp = private$random_element(private$secondary_address_formats)
      return(private$bothify(temp))
    }
  )
)

## phone_number --------------------------
phone_number_en_GB = R6Class(
  "phone_number_en_GB",
  inherit = phone_number_init,
  cloneable = FALSE,
  private = list(
    # Source:
    # https://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom
    # Fake phone numbers should be fake - this provider has been rewritten to
    # use numbers reserved for dramatic use by Ofcom. See the following:
    # https://en.wikipedia.org/wiki/Fictitious_telephone_number#United_Kingdom
    # This ensures no genuine numbers are generated at random.
    #
    # It's worth noting that the following examples include incorrect notation
    # of British phone numbers.  +44(0)xxx is incorrect and the '(0)' should
    # be omitted.  However, it's commonly written this way by Joe Public
    # and would better serve this project to be included, as it represents
    # more realistic data and is of benefit to those developing data cleansing
    # tools etc.  All possible official fake numbers are covered below.

    cellphone_formats = c(
      '07700 900 ###',
      '07700 900###',
      '07700900###',
      '(07700) 900 ###',
      '(07700) 900###',
      '(07700)900###',
      '+447700 900 ###',
      '+447700 900###',
      '+447700900###',
      '+44(0)7700 900 ###',
      '+44(0)7700 900###',
      '+44(0)7700900###'
    ),

    formats = c(
      '0113 496 0###',
      '0113 4960###',
      '01134960###',
      '(0113) 496 0###',
      '(0113) 4960###',
      '(0113)4960###',
      '+44113 496 0###',
      '+44113 4960###',
      '+441134960###',
      '+44(0)113 496 0###',
      '+44(0)113 4960###',
      '+44(0)1134960###',
      '0114 496 0###',
      '0114 4960###',
      '01144960###',
      '(0114) 496 0###',
      '(0114) 4960###',
      '(0114)4960###',
      '+44114 496 0###',
      '+44114 4960###',
      '+441144960###',
      '+44(0)114 496 0###',
      '+44(0)114 4960###',
      '+44(0)1144960###',
      '0115 496 0###',
      '0115 4960###',
      '01154960###',
      '(0115) 496 0###',
      '(0115) 4960###',
      '(0115)4960###',
      '+44115 496 0###',
      '+44115 4960###',
      '+441154960###',
      '+44(0)115 496 0###',
      '+44(0)115 4960###',
      '+44(0)1154960###',
      '0116 496 0###',
      '0116 4960###',
      '01164960###',
      '(0116) 496 0###',
      '(0116) 4960###',
      '(0116)4960###',
      '+44116 496 0###',
      '+44116 4960###',
      '+441164960###',
      '+44(0)116 496 0###',
      '+44(0)116 4960###',
      '+44(0)1164960###',
      '0117 496 0###',
      '0117 4960###',
      '01174960###',
      '(0117) 496 0###',
      '(0117) 4960###',
      '(0117)4960###',
      '+44117 496 0###',
      '+44117 4960###',
      '+441174960###',
      '+44(0)117 496 0###',
      '+44(0)117 4960###',
      '+44(0)1174960###',
      '0118 496 0###',
      '0118 4960###',
      '01184960###',
      '(0118) 496 0###',
      '(0118) 4960###',
      '(0118)4960###',
      '+44118 496 0###',
      '+44118 4960###',
      '+441184960###',
      '+44(0)118 496 0###',
      '+44(0)118 4960###',
      '+44(0)1184960###',
      '0121 496 0###',
      '0121 4960###',
      '01214960###',
      '(0121) 496 0###',
      '(0121) 4960###',
      '(0121)4960###',
      '+44121 496 0###',
      '+44121 4960###',
      '+441214960###',
      '+44(0)121 496 0###',
      '+44(0)121 4960###',
      '+44(0)1214960###',
      '0131 496 0###',
      '0131 4960###',
      '01314960###',
      '(0131) 496 0###',
      '(0131) 4960###',
      '(0131)4960###',
      '+44131 496 0###',
      '+44131 4960###',
      '+441314960###',
      '+44(0)131 496 0###',
      '+44(0)131 4960###',
      '+44(0)1314960###',
      '0141 496 0###',
      '0141 4960###',
      '01414960###',
      '(0141) 496 0###',
      '(0141) 4960###',
      '(0141)4960###',
      '+44141 496 0###',
      '+44141 4960###',
      '+441414960###',
      '+44(0)141 496 0###',
      '+44(0)141 4960###',
      '+44(0)1414960###',
      '0151 496 0###',
      '0151 4960###',
      '01514960###',
      '(0151) 496 0###',
      '(0151) 4960###',
      '(0151)4960###',
      '+44151 496 0###',
      '+44151 4960###',
      '+441514960###',
      '+44(0)151 496 0###',
      '+44(0)151 4960###',
      '+44(0)1514960###',
      '0161 496 0###',
      '0161 4960###',
      '01614960###',
      '(0161) 496 0###',
      '(0161) 4960###',
      '(0161)4960###',
      '+44161 496 0###',
      '+44161 4960###',
      '+441614960###',
      '+44(0)161 496 0###',
      '+44(0)161 4960###',
      '+44(0)1614960###',
      '0191 498 0###',
      '0191 4960###',
      '01914960###',
      '(0191) 496 0###',
      '(0191) 4960###',
      '(0191)4960###',
      '+44191 496 0###',
      '+44191 4960###',
      '+441914960###',
      '+44(0)191 496 0###',
      '+44(0)191 4960###',
      '+44(0)1914960###',
      '020 7946 0###',
      '020 74960###',
      '02074960###',
      '(020) 7496 0###',
      '(020) 74960###',
      '(020)74960###',
      '+4420 7496 0###',
      '+4420 74960###',
      '+442074960###',
      '+44(0)20 7496 0###',
      '+44(0)20 74960###',
      '+44(0)2074960###',
      '028 9018 0###',
      '028 9018###',
      '0289018###',
      '(028) 9018 0###',
      '(028) 9018###',
      '(028)9018###',
      '+4428 9018 0###',
      '+4428 9018###',
      '+44289018###',
      '+44(0)28 9018 0###',
      '+44(0)28 9018###',
      '+44(0)289018###',
      '029 2018 0###',
      '029 2018###',
      '0292018###',
      '(029) 2018 0###',
      '(029) 2018###',
      '(029)2018###',
      '+4429 2018 0###',
      '+4429 2018###',
      '+44292018###',
      '+44(0)29 2018 0###',
      '+44(0)29 2018###',
      '+44(0)292018###',
      '01632 960 ###',
      '01632 960###',
      '01632960###',
      '(01632) 960 ###',
      '(01632) 960###',
      '(01632)960###',
      '+441632 960 ###',
      '+441632 960###',
      '+441632960###',
      '+44(0)1632 960 ###',
      '+44(0)1632 960###',
      '+44(0)1632960###',
      '0306 999 0###',
      '0306 9990###',
      '03069990###',
      '(0306) 999 0###',
      '(0306) 9990###',
      '(0306)9990###',
      '+44306 999 0###',
      '+44306 9990###',
      '+443069990###',
      '+44(0)306 999 0###',
      '+44(0)306 9990###',
      '+44(0)3069990###',
      '0808 157 0###',
      '0808 1570###',
      '08081570###',
      '(0808) 157 0###',
      '(0808) 1570###',
      '(0808)1570###',
      '+44808 157 0###',
      '+44808 1570###',
      '+448081570###',
      '+44(0)808 157 0###',
      '+44(0)808 1570###',
      '+44(0)8081570###',
      '0909 879 0###',
      '0909 8790###',
      '09098790###',
      '(0909) 879 0###',
      '(0909) 8790###',
      '(0909)8790###',
      '+44909 879 0###',
      '+44909 8790###',
      '+449098790###',
      '+44(0)909 879 0###',
      '+44(0)909 8790###',
      '+44(0)9098790###'
    )
  ),

  public = list(
    cellphone_number = function() {
      pattern = private$random_element(private$cellphone_formats)
      return(private$numerify(private$format_parse(pattern)))
    }
  )
)

## ssn --------------------
ssn_en_GB = R6Class(
  "ssn_en_GB",
  inherit = ssn_init,
  cloneable = FALSE,
  private = list(
    # Source:
    # https://en.wikipedia.org/wiki/National_Insurance_number
    # UK National Insurance numbers (NINO) follow a specific format
    # To avoid generating real NINOs, the prefix and suffix letters
    # remain static using values reserved by HMRC (never to be used).
    # Example format: "QR 12 34 56 C" or "QR123456C" - only alphanumeric
    # and whitespace characters are permitted. Whitespace is for readability
    # only and is generally included as per the above examples, but a
    # few 'styles' have been included below for the sake of realism.
    nino_formats = c(
      'ZZ ## ## ## T',
      'ZZ######T',
      'ZZ ###### T'
    ),
    vat_id_formats = c(
      'GB### #### ##',
      'GB### #### ## ###',
      'GBGD###',
      'GBHA###'
    )
  ),

  public = list(
    ssn = function() {
      pattern = private$random_element(private$nino_formats)
      return(private$numerify(pattern))
    },

    vat_id = function() {
      pattern = private$random_element(private$vat_id_formats)
      return(private$bothify(pattern))
    }
  )
)

## company -----------------
company_en_GB = R6Class(
  "company_en_GB",
  inherit = company_en_US,
  cloneable = FALSE,
  private = list(
    last_names = (person_en_GB$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_GB$new())$last_name
  )
)
## credit_card -----------------
credit_card_en_GB = R6Class(
  "credit_card_en_GB",
  inherit = credit_card_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_en_GB$new())$.__enclos_env__$private$first_names,
    first_name = (person_en_GB$new())$first_name,
    last_names = (person_en_GB$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_GB$new())$last_name
  )
)



## internet -----------------
internet_en_GB = R6Class(
  "internet_en_GB",
  inherit = internet_en_US,
  cloneable = FALSE,
  private = list(
    first_names = (person_en_GB$new())$.__enclos_env__$private$first_names,
    last_names = (person_en_GB$new())$.__enclos_env__$private$last_names,
    first_name = (person_en_GB$new())$first_name,
    last_name = (person_en_GB$new())$last_name
  ),
  public = list(
    domain_word = function() {
      company = (company_en_GB$new())$company()
      company_elements = str_split(company, " ")[[1]]
      company = private$to_ascii(company_elements[1])
      return(private$slugify(company, allow_unicode = TRUE))
    }
  )
)
## profile ------------------
profile_en_GB = R6Class(
  "profile_en_GB",
  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_en_GB$new())$name_female(),
                    (person_en_GB$new())$name_male())
      temp = list(
        "username" = (internet_en_GB$new())$user_name(),
        "name" = name,
        "sex" = sex,
        "address" = (address_en_GB$new())$address(),
        "mail" = (internet_en_GB$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_en_GB$new())$company(),
        "ssn" = (ssn_en_GB$new())$ssn(),
        "residence" = (address_en_GB$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_GB$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.