public void InlineSerialization() { var record = new ValueRecord { RootValue = 1, Record = new TestSubReferenceRecord(2), Nullable = null, OtherValue = 3 }; string result; using (var writer = new SimpleLoggerMemoryWriter()) { var serializer = RecordWriterBuilderForTests.Default.CreateTsvValueRecordWriter <ValueRecord>(writer); serializer.Write(in record); writer.Flush(out result); } string[] lines = result.Split(Environment.NewLine); lines.Length.AssertIsEqualTo(3); lines[0].Split('\t').AssertSequenceEqualsTo(new[] { "RootValue", "Record_Value", "Nullable_NotPresentValue", "Nullable_NotPresentOther", "OtherValue" }); lines[1].AssertIsEqualTo("1\t2\t\t\t3"); lines[2].AssertIsEmpty(); }
public void WriteTest() { using var logger = new SimpleLoggerMemoryWriter(); (2 * A).Write(logger); logger.Flush(out string value); value.AssertIsEqualTo("2a"); (2 * A).ToString().AssertIsEqualTo("2a"); }
public RecordPerRowStream( string rowFieldSeparator, ISimpleLogger logger) { _writer = new ValuesRowWriter(logger, rowFieldSeparator); _secondaryLogger = new SimpleLoggerMemoryWriter(); _secondaryWriter = new ValuesRowWriter(_secondaryLogger, rowFieldSeparator); IsHeaderSerialized = false; }
public async Task CreateTsvReferenceNotepadTests() { var record = new TestReferenceRecord { ByteValue = 1, SbyteValue = -1, UShortValue = 2, ShortValue = -2, UIntValue = 3, IntValue = -3, ULongValue = 4, LongValue = -4, StringValue = "value", DoubleValue = 1.1, NumberValue = 1.2, NumberArray = new ReadOnlyArrayWrapper <Number> { Value = new Number[] { 1.3, 1.4 } } }; string filePath; string result; using (var writer = new SimpleLoggerMemoryWriter()) { var logger = writer.WithWriterFactory(RecordWriterBuilderForTests.Default); await using (var serializer = logger.CreateTsvReferenceNotepad <TestReferenceRecord>("test")) { serializer.Write(record); filePath = serializer.Destination.FullName; } writer.Flush(out result); } string[] lines = await File.ReadAllLinesAsync(filePath); lines.Length.AssertIsEqualTo(2); lines[0].Split('\t').AssertSequenceEqualsTo(new[] { "ByteValue", "SbyteValue", "UShortValue", "ShortValue", "UIntValue", "IntValue", "ULongValue", "LongValue", "StringValue", "DoubleValue", "NumberValue", "NumberArray_0", "NumberArray_1" }); lines[1].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2\t1.3\t1.4"); string[] resultLines = result.Split(Environment.NewLine); resultLines.Length.AssertIsEqualTo(2); resultLines[0].AssertIsEqualTo("Notepad test: " + filePath); }
public void ArraySerialization() { var record = new TestReferenceRecordArray { Records = new[] { new NullableSubRecord(), new NullableSubRecord { NotPresentValue = 1, NotPresentOther = 5 } }, RecordsValuesNotNull = new TestValueRecord[0], RecordsReferencesList = new List <NullableSubRecord> { new NullableSubRecord() }, RecordsValuesList = new List <TestSubValueRecord> { new TestSubValueRecord(10) } }; string result; using (var writer = new SimpleLoggerMemoryWriter()) { var serializer = RecordWriterBuilderForTests.Default.CreateTsvValueRecordWriter <TestReferenceRecordArray>(writer); serializer.Write(in record); writer.Flush(out result); } string[] lines = result.Split(Environment.NewLine); lines.Length.AssertIsEqualTo(3); lines[0].Split('\t').AssertSequenceEqualsTo(new[] { "Records_0_NotPresentValue", "Records_0_NotPresentOther", "Records_1_NotPresentValue", "Records_1_NotPresentOther", "RecordsReferencesList_0_NotPresentValue", "RecordsReferencesList_0_NotPresentOther", "RecordsValuesList_0_Value" }); lines[1].AssertIsEqualTo("2\t3\t1\t5\t2\t3\t10"); lines[2].AssertIsEmpty(); }
public void DefaultSerialization_NullReadOnlyArray() { var record = new TestValueRecord { ByteValue = 1, SbyteValue = -1, UShortValue = 2, ShortValue = -2, UIntValue = 3, IntValue = -3, ULongValue = 4, LongValue = -4, StringValue = "value", DoubleValue = 1.1, NumberValue = 1.2 }; TestValueRecord?record2 = null; TestValueRecord?record3 = record; string result; using (var writer = new SimpleLoggerMemoryWriter()) { var serializer = RecordWriterBuilderForTests.Default.CreateTsvValueRecordWriter <TestValueRecord>(writer); serializer.Write(in record); serializer.Write(in record2); serializer.Write(in record3); writer.Flush(out result); } string[] lines = result.Split(Environment.NewLine); lines.Length.AssertIsEqualTo(5); lines[0].Split('\t').AssertSequenceEqualsTo(new[] { "ByteValue", "SbyteValue", "UShortValue", "ShortValue", "UIntValue", "IntValue", "ULongValue", "LongValue", "StringValue", "DoubleValue", "NumberValue" }); lines[1].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2"); lines[2].AssertIsEqualTo("\t\t\t\t\t\t\t\t\t\t"); lines[3].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2"); lines[4].AssertIsEmpty(); }
public SimpleLoggerStreamWriter(Stream writer) { _writer = writer; _logsBuffer = new SimpleLoggerMemoryWriter(); IsLoggerEnabled = true; }