From 6e0e7a1e9f83b85615f82d26c5bf1a7d66844a3b Mon Sep 17 00:00:00 2001 From: Tomer Brisker Date: Sat, 8 Aug 2020 14:46:05 +0300 Subject: Improve float scalar scanner Previously, `+.inf` was not handled correctly. Additionally, the regexp was checking for inf and NaN, even though these cases are handled earlier in the condition. Added a few tests to ensure handling some missing cases. --- test/psych/test_scalar_scanner.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test') diff --git a/test/psych/test_scalar_scanner.rb b/test/psych/test_scalar_scanner.rb index 1bd6488..ec67a33 100644 --- a/test/psych/test_scalar_scanner.rb +++ b/test/psych/test_scalar_scanner.rb @@ -66,6 +66,10 @@ module Psych assert_equal(1 / 0.0, ss.tokenize('.inf')) end + def test_scan_plus_inf + assert_equal(1 / 0.0, ss.tokenize('+.inf')) + end + def test_scan_minus_inf assert_equal(-1 / 0.0, ss.tokenize('-.inf')) end @@ -133,5 +137,13 @@ module Psych assert_equal 0x123456789abcdef, ss.tokenize('0x_12_,34,_56,_789abcdef') assert_equal 0x123456789abcdef, ss.tokenize('0x12_,34,_56,_789abcdef__') end + + def test_scan_dot + assert_equal '.', ss.tokenize('.') + end + + def test_scan_plus_dot + assert_equal '+.', ss.tokenize('+.') + end end end -- cgit v1.2.1