From 7d04834b79aa6677b1bff42161311cb79809ed7d Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 26 Apr 2019 19:38:43 +0200 Subject: Do not allocate a string to check if a scalar is an integer --- test/psych/test_scalar_scanner.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test') diff --git a/test/psych/test_scalar_scanner.rb b/test/psych/test_scalar_scanner.rb index ebe8daf..d12a905 100644 --- a/test/psych/test_scalar_scanner.rb +++ b/test/psych/test_scalar_scanner.rb @@ -113,5 +113,22 @@ module Psych def test_scan_strings_starting_with_underscores assert_equal "_100", ss.tokenize('_100') end + + def test_scan_int_commas_and_underscores + # NB: This test is to ensure backward compatibility with prior Psych versions, + # not to test against any actual YAML specification. + assert_equal 123_456_789, ss.tokenize('123_456_789') + assert_equal 123_456_789, ss.tokenize('123,456,789') + assert_equal 123_456_789, ss.tokenize('1_2,3,4_5,6_789') + + assert_equal 0b010101010, ss.tokenize('0b010101010') + assert_equal 0b010101010, ss.tokenize('0b0,1_0,1_,0,1_01,0') + + assert_equal 01234567, ss.tokenize('01234567') + assert_equal 01234567, ss.tokenize('0_,,,1_2,_34567') + + assert_equal 0x123456789abcdef, ss.tokenize('0x123456789abcdef') + assert_equal 0x123456789abcdef, ss.tokenize('0x12_,34,_56,_789abcdef') + end end end -- cgit v1.2.3