Пример #1
0
        public void ParseTabularTest()
        {
            ParseTabularTest("1 2 3|4 5 6|7 a 99", 3, 3);
            ParseTabularTest("1  3|4 5 6", 2, 3);

            Tabular tabular = ParseTabularTest(@"1 hello\ world 3|4 5 6", 2, 3);

            Assert.AreEqual(@"hello\ world", tabular.GetData(0, 1).ToString());

            tabular = ParseTabularTest(@"abcd hello\ wor\|\|ld 3|4  6", 2, 3);
            Assert.AreEqual(@"hello\ wor\|\|ld", tabular.GetData(0, 1).ToString());
            Assert.AreEqual(ReadOnlyMemory <char> .Empty, tabular.GetData(1, 1));

            tabular = ParseTabularTest(@"1 2 3 4|4 5 6", 2, 4);
            Assert.AreEqual(ReadOnlyMemory <char> .Empty, tabular.GetData(1, 3));

            tabular = Tabular.Parse(@"1 2 3 4|4 5 6  ");
            Assert.AreEqual(@"1 2 3 4|4 5 6 ", tabular.ToString());

            tabular = ParseTabularTest(@"1 \\ 3|4 5 6", 2, 3);
            Assert.AreEqual(@"\\", tabular.GetData(0, 1).ToString());

            tabular = Tabular.Parse("1 2 3 | 4 5 6 | 7 ");
            Assert.AreEqual("4", tabular.GetData(1, 0).ToString());
            Assert.AreEqual("7", tabular.GetData(2, 0).ToString());
            Assert.AreEqual("1 2 3|4 5 6|7", tabular.ToString());

            tabular = Tabular.Parse(@"1 2 3 | 4 5 6 | 7 some\ long\ sentence");
            Assert.AreEqual(3, tabular.Rows);
            Assert.AreEqual(3, tabular.Columns);
            Assert.AreEqual(@"some\ long\ sentence", tabular.GetData(2, 1).ToString());

            ParseTabularTest(@"1 2 3 4\ 5\6", 1, 4);
            ParseTabularTest(@"xyz", 1, 1);

            tabular = Tabular.Parse(@"xyz\|\||");
            Assert.AreEqual(1, tabular.Rows);
            Assert.AreEqual(1, tabular.Columns);
            Assert.AreEqual(@"xyz\|\|", tabular.ToString());
        }