summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/stdlib/tdigitsutils.nim23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/stdlib/tdigitsutils.nim b/tests/stdlib/tdigitsutils.nim
new file mode 100644
index 000000000..7cf63411f
--- /dev/null
+++ b/tests/stdlib/tdigitsutils.nim
@@ -0,0 +1,23 @@
+import std/private/digitsutils
+
+template main =
+  block: # digits10
+    doAssert digits10(0'u64) == 1
+    # checks correctness on all powers of 10 + [0,-1,1]
+    var x = 1'u64
+    var num = 1
+    while true:
+      # echo (x, num)
+      doAssert digits10(x) == num
+      doAssert digits10(x+1) == num
+      if x > 1:
+        doAssert digits10(x-1) == num - 1
+      num += 1
+      let xOld = x
+      x *= 10
+      if x < xOld:
+        # wrap-around
+        break
+
+static: main()
+main()