From 92f46837124b963959587156cbec7c2328a35070 Mon Sep 17 00:00:00 2001 From: aps <62445385+apsz3@users.noreply.github.com> Date: Fri, 10 Feb 2023 14:23:49 -0500 Subject: [PATCH] Add all, any builtins --- src/builtins.h | 12 ++++++++++++ tests/_builtin_ty.py | 14 +++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/builtins.h b/src/builtins.h index 519e80c2..0f449d95 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -32,6 +32,18 @@ def max(a, b): def min(a, b): return a < b ? a : b +def all(iterable): + for i in iterable: + if not i: + return False + return True + +def any(iterable): + for i in iterable: + if i: + return True + return False + def sum(iterable): res = 0 for i in iterable: diff --git a/tests/_builtin_ty.py b/tests/_builtin_ty.py index d3365eee..cc87da7e 100644 --- a/tests/_builtin_ty.py +++ b/tests/_builtin_ty.py @@ -186,4 +186,16 @@ assert abs(0) == 0 assert abs(1.0) == 1.0 assert abs(-1.0) == 1.0 assert abs(1) == 1 -assert abs(-1) == 1 \ No newline at end of file +assert abs(-1) == 1 + +assert any([1]) +assert any([1,False,True]) +assert not any([]) +assert not any([False]) + +assert all([]) +assert all([True]) +assert all([True, 1]) +assert not all([False]) +assert not all([True, False]) +assert not all([False, False])