private static unsafe bool TryParseTimeSpan(string str, out TimeSpan ts) { fixed(char *c = str) { return(LazyStringParser.TryParseTimeSpan(c, str.Length, out ts)); } }
public void CanParseValidTimeSpans(string dt) { var expected = TimeSpan.ParseExact(dt, "c", CultureInfo.InvariantCulture); var bytes = Encoding.UTF8.GetBytes(dt); fixed(byte *buffer = bytes) { TimeSpan ts; Assert.True(LazyStringParser.TryParseTimeSpan(buffer, bytes.Length, out ts)); Assert.Equal(expected, ts); } }
public void WillNotParseAsTimeSpan(string dt) { TimeSpan expected; var result = TimeSpan.TryParseExact(dt, "c", CultureInfo.InvariantCulture, out expected); Assert.False(result); var bytes = Encoding.UTF8.GetBytes(dt); fixed(byte *buffer = bytes) { TimeSpan ts; Assert.False(LazyStringParser.TryParseTimeSpan(buffer, bytes.Length, out ts)); Assert.Equal(expected, ts); } }