Skip to content

Commit 9ee470b

Browse files
committed
Testing lengthened.
1 parent c6f42ea commit 9ee470b

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

codonPython/nhsNumberGenerator.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import random
2+
import numpy as np
23

34

45
def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
@@ -40,9 +41,9 @@ def nhsNumberGenerator(to_generate: int, random_state: int = None)->list:
4041
number = random.randint(100000000, 999999999)
4142
digits = [int(digit) for digit in str(number)]
4243
# Apply weighting to digits
43-
weighted_digits = [(10 - index) * digit for (index, digit) in enumerate(digits)]
44+
weighted_digits = np.dot(np.array(digits), np.arange(10,1,-1))
4445
# Validity is based on the check digit, which can't be 10
45-
remainder = sum(weighted_digits) % 11
46+
remainder = weighted_digits % 11
4647
check_digit = 11 - remainder
4748
if check_digit == 10:
4849
continue

codonPython/tests/nhsNumberGenerator_test.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,28 @@
55

66

77
@pytest.mark.parametrize("to_generate, random_state, expected", [
8-
(3, 42, [7865793030, 2195408316, 1268550922]),
8+
(20, 42, [
9+
7865793030,
10+
2195408316,
11+
1268550922,
12+
8962337908,
13+
3953104853,
14+
3629506283,
15+
3396707117,
16+
2498277064,
17+
8907799466,
18+
2100533533,
19+
8266005397,
20+
8952859324,
21+
6855828612,
22+
1933498560,
23+
7340365060,
24+
5530351107,
25+
1341263967,
26+
1319945236,
27+
2006045024,
28+
3347607384
29+
]),
930
(2, 1, [2442725096, 7111780027])
1031
])
1132
def test_nhsNumberGenerator_BAU(to_generate, random_state, expected):

0 commit comments

Comments
 (0)