1
0
Эх сурвалжийг харах

Merge pull request #10 from apsz3/main

Add all, any builtins
BLUELOVETH 3 жил өмнө
parent
commit
817f7c3583
2 өөрчлөгдсөн 25 нэмэгдсэн , 1 устгасан
  1. 12 0
      src/builtins.h
  2. 13 1
      tests/_builtin_ty.py

+ 12 - 0
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:

+ 13 - 1
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
+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])