コード例 #1
0
        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();
        }
コード例 #2
0
 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");
 }
コード例 #3
0
        public RecordPerRowStream(
            string rowFieldSeparator,
            ISimpleLogger logger)
        {
            _writer = new ValuesRowWriter(logger, rowFieldSeparator);

            _secondaryLogger = new SimpleLoggerMemoryWriter();
            _secondaryWriter = new ValuesRowWriter(_secondaryLogger, rowFieldSeparator);

            IsHeaderSerialized = false;
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
 public SimpleLoggerStreamWriter(Stream writer)
 {
     _writer         = writer;
     _logsBuffer     = new SimpleLoggerMemoryWriter();
     IsLoggerEnabled = true;
 }