62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
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<DateTest> parsed = SaneTsv.ParseExtraTsv<DateTest>(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<DateTest> parsed = SaneTsv.ParseExtraTsv<DateTest>(Encoding.UTF8.GetBytes(testString1));
|
|
string serialized = Encoding.UTF8.GetString(SaneTsv.SerializeExtraTsv<DateTest>(parsed.Records));
|
|
if (serialized == testString1)
|
|
{
|
|
Console.WriteLine($"Passed {testName}");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine($"Failed {testName}");
|
|
}
|
|
}
|
|
|
|
Console.WriteLine("Done with tests");
|
|
}
|
|
}
|
|
|
|
|