From dd719f9490079b9e3c4cb03e96d8d94a2e151613 Mon Sep 17 00:00:00 2001 From: Jaakko Haakana Date: Thu, 23 Mar 2023 21:59:01 +0200 Subject: [PATCH] Support parsing of rationals in format '1 2/5'. --- src/Rationals/Parsing.cs | 2 +- tests/Rationals.Tests/ParsingTests.cs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Rationals/Parsing.cs b/src/Rationals/Parsing.cs index 7fa4e81..f7781f3 100644 --- a/src/Rationals/Parsing.cs +++ b/src/Rationals/Parsing.cs @@ -15,7 +15,7 @@ public partial struct Rational RegexOptions.Compiled | RegexOptions.CultureInvariant); private static readonly Regex WholeFractionalFormat = - new Regex(@"^\s*(?-?\d+)\s*[+]\s*(?-?\d+)/(?-?\d+)\s*$", + new Regex(@"^\s*(?-?\d+)(\s*[+]\s*|\s+)(?-?\d+)/(?-?\d+)\s*$", RegexOptions.Compiled | RegexOptions.CultureInvariant); private static readonly Regex NaNFormat = new Regex(@"^\s*NaN\s*$", diff --git a/tests/Rationals.Tests/ParsingTests.cs b/tests/Rationals.Tests/ParsingTests.cs index 79f3bb6..d66d5d9 100644 --- a/tests/Rationals.Tests/ParsingTests.cs +++ b/tests/Rationals.Tests/ParsingTests.cs @@ -7,6 +7,8 @@ public class ParsingTests { [Theory] [InlineData(@"3/4", true, 3, 4)] + [InlineData(@"1 2/5", true, 7, 5)] + [InlineData(@"1 2/5", true, 7, 5)] [InlineData(@"3\4", false, 0, 0)] [InlineData(@"3|4", false, 0, 0)] [InlineData(@"-25/-2310832109823", true, -25, -2310832109823)]