Skip to content

Commit 8b400ef

Browse files
Update imply_gate.py
1 parent 71910b4 commit 8b400ef

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

boolean_algebra/imply_gate.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,47 @@ def recursive_imply_list(input_list: list[int]) -> int:
4040
( (a -> b) -> c ) -> d ...
4141
4242
>>> recursive_imply_list([])
43-
1
43+
Traceback (most recent call last):
44+
...
45+
ValueError: Input list must contain at least two elements
4446
>>> recursive_imply_list([0])
45-
0
47+
Traceback (most recent call last):
48+
...
49+
ValueError: Input list must contain at least two elements
4650
>>> recursive_imply_list([1])
51+
Traceback (most recent call last):
52+
...
53+
ValueError: Input list must contain at least two elements
54+
>>> recursive_imply_list([0, 0])
55+
1
56+
>>> recursive_imply_list([0, 1])
57+
1
58+
>>> recursive_imply_list([1, 0])
59+
0
60+
>>> recursive_imply_list([1, 1])
61+
1
62+
>>> recursive_imply_list([0, 0, 0])
63+
0
64+
>>> recursive_imply_list([0, 0, 1])
65+
1
66+
>>> recursive_imply_list([0, 1, 0])
67+
0
68+
>>> recursive_imply_list([0, 1, 1])
69+
1
70+
>>> recursive_imply_list([1, 0, 0])
4771
1
4872
>>> recursive_imply_list([1, 0, 1])
4973
1
5074
>>> recursive_imply_list([1, 1, 0])
5175
0
76+
>>> recursive_imply_list([1, 1, 1])
77+
1
5278
"""
53-
if not input_list:
54-
return 1
55-
if len(input_list) == 1:
56-
return input_list[0]
79+
if len(input_list) < 2:
80+
raise ValueError('Input list must contain at least two elements')
5781
first_implication = imply_gate(input_list[0], input_list[1])
82+
if len(input_list) == 2:
83+
return first_implication
5884
new_list = [first_implication, *input_list[2:]]
5985
return recursive_imply_list(new_list)
6086

0 commit comments

Comments
 (0)