public static void Read() { var reader = new StrReader(c_target.AsSpan(), ' '); var hello = reader.GetString(); var world = reader.GetString(); var fivePointSix = reader.GetDouble(); var ff = reader.GetInt(); Assert.Equal("hello", hello.ToString()); Assert.Equal("world", world.ToString()); Assert.Equal(5.6, fivePointSix); Assert.Equal(255, ff); }
public static void TestReadToEnd() { var actual = new[] { "1", "2", "3", "4", "5" }; var input = "1,2,3,4,5"; var reader = new StrReader(input.AsSpan(), ','); var readToEnd = reader.ReadToEnd().ToArray(); Assert.Equal(actual, readToEnd); }
public static void RoundTrip() { const char separator = '/'; var input = new GeneratedClass { m_int = int.MaxValue, m_double = 3.14, m_string = "hello world", m_spanStr = new SpanStr("span string") }; var writer = new StrWriter(separator); input.Serialize(ref writer); var builtString = writer.ToString(); bool exceptionThrown = false; try { writer.PutRaw('\0'); Assert.True(false); // lol } catch (ObjectDisposedException) { exceptionThrown = true; // good } Assert.True(exceptionThrown); var reader = new StrReader(builtString.AsSpan(), separator); var output = new GeneratedClass(); output.Deserialize(ref reader); Assert.Equal(input.m_int, output.m_int); Assert.Equal(input.m_double, output.m_double); Assert.Equal(input.m_string, output.m_string); Assert.Equal(input.m_spanStr.ToString(), output.m_spanStr.ToString()); }
public static void InterpretError() { Assert.Throws <InvalidDataException>(() => StrReader.InterpretBool("yep")); }
public static void Interpret(string str, bool expected) { var actual = StrReader.InterpretBool(str.AsSpan()); Assert.Equal(expected, actual); }