33
44def nhsNumberGenerator (to_generate : int , random_state : int = None )-> list :
55 """
6- Generates random NHS number(s) compliant with modulus 11 checks recorded
6+ Generates up to 1M random NHS number(s) compliant with modulus 11 checks recorded
77 in the data dictonary.
88 https://www.datadictionary.nhs.uk/data_dictionary/attributes/n/nhs/nhs_number_de.asp?shownav=1
99
@@ -12,7 +12,7 @@ def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
1212 to_generate : int
1313 number of NHS numbers to generate
1414 random_state : int, default : None
15- Optional seed for random number generation, for testing and reproducability .
15+ Optional seed for random number generation, for testing and reproducibility .
1616
1717 Returns
1818 ----------
@@ -27,7 +27,13 @@ def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
2727
2828 if random_state :
2929 random .seed (random_state )
30-
30+ if not isinstance (to_generate , int ) :
31+ raise ValueError ("Please input a positive integer to generate numbers." )
32+ if to_generate > 1000000 :
33+ raise ValueError ("More than one million values requested" )
34+ if to_generate < 0 :
35+ raise ValueError ("Please input a postitive integer to generate numbers." )
36+
3137 generated = []
3238 while len (generated ) < to_generate :
3339 # Random 9 digit number starting with non-zero digit
@@ -41,3 +47,7 @@ def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
4147 number = int (str (number ) + "0" )
4248 generated .append (number )
4349 return generated
50+
51+ import numpy as np
52+ nhsNumberGenerator (np .inf )
53+ nhsNumberGenerator (4.2 )
0 commit comments