using NathanMcRae; using System.Reflection; using System.Text; internal class Program : SaneTsv { public class DateTest : SaneTsv.CommentedTsvRecord { [SaneTsv.TypedTsvColumn("column1:ty#pe")] public bool Column1 { get; set; } [SaneTsv.TypedTsvColumn] public byte[] column2 { get; set; } [SaneTsv.TypedTsvColumn("columnthree\nyep")] public DateTime Column3 { get; set; } } private static void Main(string[] args) { { string testName = "Parse date"; string testString1 = "# ExtraTSV V0.0.1\n" + "column1:ty\\#pe:boolean\tcolumn2:binary\tcolumnthree\\nyep:iso8601:string" + "\nTRUE\tvalue\\\\t\0woo\t2024-02-15T18:03:30.0000" + "\nFALSE\tnother\t2024-02-15T18:03:39.0001"; CommentedTsv parsed = SaneTsv.ParseExtraTsv(Encoding.UTF8.GetBytes(testString1)); if (parsed.Records[0].Column1) { Console.WriteLine($"Passed {testName}"); } else { Console.WriteLine($"Failed {testName}"); } } { string testName = "Serde date"; string testString1 = "# ExtraTSV V0.0.1\n" + "column1:ty\\#pe:boolean\tcolumn2:binary\tcolumnthree\\nyep:iso8601:string" + "\nTRUE\tvalue\\\\t\0woo\t2024-02-15T18:03:30.0000" + "\nFALSE\tnother\t2024-02-15T18:03:39.0001"; CommentedTsv parsed = SaneTsv.ParseExtraTsv(Encoding.UTF8.GetBytes(testString1)); string serialized = Encoding.UTF8.GetString(SaneTsv.SerializeExtraTsv(parsed.Records)); if (serialized == testString1) { Console.WriteLine($"Passed {testName}"); } else { Console.WriteLine($"Failed {testName}"); } } Console.WriteLine("Done with tests"); } }