瀏覽代碼

Update simple.py

add `sqrt` to math
blueloveTH 3 年之前
父節點
當前提交
b6bb543c84
共有 3 個文件被更改,包括 6 次插入3 次删除
  1. 1 1
      benchmarks/simple.py
  2. 1 0
      src/pocketpy.h
  3. 4 2
      tests/_math.py

+ 1 - 1
benchmarks/simple.py

@@ -17,4 +17,4 @@ def test(n):
 # dis(test)
 # dis(is_prime)
 
-print(test(10000))
+assert test(10000) == 1229

+ 1 - 0
src/pocketpy.h

@@ -580,6 +580,7 @@ void add_module_math(VM* vm){
     vm->bind_func<1>(mod, "fabs", CPP_LAMBDA(vm->PyFloat(std::fabs(vm->num_to_float(args[0])))));
     vm->bind_func<1>(mod, "floor", CPP_LAMBDA(vm->PyInt(std::floor(vm->num_to_float(args[0])))));
     vm->bind_func<1>(mod, "ceil", CPP_LAMBDA(vm->PyInt(std::ceil(vm->num_to_float(args[0])))));
+    vm->bind_func<1>(mod, "sqrt", CPP_LAMBDA(vm->PyFloat(std::sqrt(vm->num_to_float(args[0])))));
 }
 
 void add_module_dis(VM* vm){

+ 4 - 2
tests/_math.py

@@ -1,4 +1,4 @@
-from math import log, log10, log2, sin, cos, tan, e, pi, isnan, isinf, fabs, floor, ceil
+from math import log, log10, log2, sin, cos, tan, e, pi, isnan, isinf, fabs, floor, ceil, sqrt
 
 def isclose(a, b):
     return abs(a-b) < 0.000001
@@ -23,4 +23,6 @@ assert isclose(fabs(-1.2), 1.2)
 assert floor(1.2) == 1
 assert floor(-1.2) == -2
 assert ceil(1.2) == 2
-assert ceil(-1.2) == -1
+assert ceil(-1.2) == -1
+
+assert isclose(sqrt(4), 2.0)