Skip to content

Commit 2d9945e

Browse files
committed
nhsNumberGenerator tests, clear init
1 parent 623108c commit 2d9945e

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

codonPython/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
from .age_bands import *
2-
from .dateValidator import *
3-
from .nhsNumberGenerator import *
4-
from .tableFromSql import *

codonPython/nhsNumberGenerator.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import random
22

33

4-
def nhsNumberGenerator(to_generate: int)->list:
4+
def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
55
"""
66
Generates random NHS number(s) compliant with modulus 11 checks recorded
77
in the data dictonary.
@@ -11,6 +11,8 @@ def nhsNumberGenerator(to_generate: int)->list:
1111
----------
1212
to_generate : int
1313
number of NHS numbers to generate
14+
random_state : int, default : None
15+
Optional seed for random number generation, for testing and reproducability.
1416
1517
Returns
1618
----------
@@ -19,11 +21,13 @@ def nhsNumberGenerator(to_generate: int)->list:
1921
2022
Examples
2123
---------
22-
>>> random.seed(42)
23-
>>> nhsNumberGenerator(2)
24+
>>> nhsNumberGenerator(2, random_state=42)
2425
[7865793030, 1933498560]
2526
"""
2627

28+
if random_state:
29+
random.seed(random_state)
30+
2731
generated = []
2832
while len(generated) < to_generate:
2933
# Random 9 digit number starting with non-zero digit
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from codonPython.nhsNumberGenerator import nhsNumberGenerator
2+
import numpy as np
3+
import pytest
4+
import random
5+
6+
7+
@pytest.mark.parametrize("to_generate, random_state, expected", [
8+
(3, 42, [7865793030, 1933498560, 7340365060]),
9+
(2, 1, [1677604360, 9170772010])
10+
])
11+
def test_nhsNumberGenerator_BAU(to_generate, random_state, expected):
12+
assert expected == nhsNumberGenerator(to_generate, random_state=random_state)

0 commit comments

Comments
 (0)