From f0b7ea406e9ff6cddd24420670c224a39c7ccfa4 Mon Sep 17 00:00:00 2001 From: TTAAAN <122733793+TTAAAN@users.noreply.github.com> Date: Sun, 3 May 2026 14:14:01 +0700 Subject: [PATCH 1/3] feat: add n_input_or_gate function to calculate OR of multiple inputs --- boolean_algebra/or_gate.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/boolean_algebra/or_gate.py b/boolean_algebra/or_gate.py index 0fd4e5a5dc18..f0518b5a3bdb 100644 --- a/boolean_algebra/or_gate.py +++ b/boolean_algebra/or_gate.py @@ -29,6 +29,19 @@ def or_gate(input_1: int, input_2: int) -> int: return int((input_1, input_2).count(1) != 0) +def n_input_or_gate(inputs: list[int]) -> int: + """ + Calculate OR of a list of input values + >>> n_input_or_gate([0, 0, 0, 0, 0]) + 0 + >>> n_input_or_gate([0, 1, 0, 0, 0]) + 1 + >>> n_input_or_gate([1, 1, 1, 1, 1]) + 1 + """ + return int(any(inputs)) + + if __name__ == "__main__": import doctest From c98bfe8a433c90c29c766abb2ce1bbbf81d208c6 Mon Sep 17 00:00:00 2001 From: TTAAAN <122733793+TTAAAN@users.noreply.github.com> Date: Mon, 4 May 2026 11:39:45 +0700 Subject: [PATCH 2/3] fix: enforce input length restriction for n_input_or_gate function --- boolean_algebra/or_gate.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/boolean_algebra/or_gate.py b/boolean_algebra/or_gate.py index f0518b5a3bdb..eaab7e7a1a17 100644 --- a/boolean_algebra/or_gate.py +++ b/boolean_algebra/or_gate.py @@ -39,6 +39,9 @@ def n_input_or_gate(inputs: list[int]) -> int: >>> n_input_or_gate([1, 1, 1, 1, 1]) 1 """ + if len(inputs) > 1: + raise ValueError("Input list must contain at least two elements") + return int(any(inputs)) From cfea4c3c9b7c7f15369276260d38714640a146c0 Mon Sep 17 00:00:00 2001 From: TTAAAN <122733793+TTAAAN@users.noreply.github.com> Date: Mon, 4 May 2026 11:50:09 +0700 Subject: [PATCH 3/3] fix: update input validation for n_input_or_gate to require at least two elements --- boolean_algebra/or_gate.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/boolean_algebra/or_gate.py b/boolean_algebra/or_gate.py index eaab7e7a1a17..89e0272d97db 100644 --- a/boolean_algebra/or_gate.py +++ b/boolean_algebra/or_gate.py @@ -38,8 +38,16 @@ def n_input_or_gate(inputs: list[int]) -> int: 1 >>> n_input_or_gate([1, 1, 1, 1, 1]) 1 + + >>> n_input_or_gate([0, 1]) + 1 + + >>> n_input_or_gate([1]) + Traceback (most recent call last): + ... + ValueError: Input list must contain at least two elements """ - if len(inputs) > 1: + if len(inputs) < 2: raise ValueError("Input list must contain at least two elements") return int(any(inputs))