summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-12-15 14:20:58 -0500
committerKevin Newton <kddnewton@gmail.com>2024-02-22 22:42:44 -0500
commitff6ebba9deccd4d7514d416ea4910de7717194cd (patch)
treea92ddaf6599784362dc3f44b13355b2886d99aea /test
parent548151d1e9f64913e26acec61e95d0568da35e5e (diff)
[ruby/prism] Parse numeric values
https://github.com/ruby/prism/commit/a6a552411c
Diffstat (limited to 'test')
-rw-r--r--test/prism/number_parse_test.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/prism/number_parse_test.rb b/test/prism/number_parse_test.rb
new file mode 100644
index 0000000000..401aead243
--- /dev/null
+++ b/test/prism/number_parse_test.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require_relative "test_helper"
+
+return if Prism::BACKEND == :FFI
+
+module Prism
+ class NumberParseTest < TestCase
+ def test_number_parse
+ assert_number_parse(1)
+ assert_number_parse(50)
+ assert_number_parse(100)
+ assert_number_parse(100, "1_0_0")
+
+ assert_number_parse(10, "0b1010")
+ assert_number_parse(10, "0B1010")
+ assert_number_parse(10, "0o12")
+ assert_number_parse(10, "0O12")
+ assert_number_parse(10, "012")
+ assert_number_parse(10, "0d10")
+ assert_number_parse(10, "0D10")
+ assert_number_parse(10, "0xA")
+ assert_number_parse(10, "0XA")
+
+ assert_number_parse(2**32)
+ assert_number_parse(2**64 + 2**32)
+ assert_number_parse(2**128 + 2**64 + 2**32)
+ end
+
+ private
+
+ def assert_number_parse(expected, source = expected.to_s)
+ assert_equal expected, Debug.number_parse(source)
+ end
+ end
+end