Ejemplo n.º 1
0
 public override void Parse(TextReader reader, WorldCollection worlds)
 {
     ColumnParser parser = new ColumnParser(reader);
     foreach (var row in parser.Data) {
         ParseWorld(worlds, row.dict, row.line, row.lineNumber);
     }
 }
Ejemplo n.º 2
0
        public override void Parse(TextReader reader, WorldCollection worlds, ErrorLogger errors)
        {
            ColumnParser parser = new ColumnParser(reader);

            foreach (var row in parser.Data)
            {
                ParseWorld(worlds, row.dict, row.line, row.lineNumber, errors);
            }
        }
Ejemplo n.º 3
0
        public void ColumnParserTest()
        {
            StringReader reader = new StringReader(
                "\r\n" +
                "# comment\r\n" +
                "\r\n" +
                "1    2    3   4        5         6 7\r\n" +
                "---- -    --- -------- --------- - ----\r\n" +
                "a a  b  x c   d     d          e f g   \r\n" +
                "AAAAABBBBBCCCCDDDDDDDDDEEEEEEEEEEFFGGGGGGGG\r\n");

            var parsed = new ColumnParser(reader);

            CollectionAssert.AreEqual(new string[] { "1", "2", "3", "4", "5", "6", "7" }, parsed.Fields);

            var data = parsed.Data;
            Assert.AreEqual(data.Count,2);

            var dict = data[0].dict;
            Assert.AreEqual("a a", dict["1"]);
            Assert.AreEqual("b", dict["2"]);
            Assert.AreEqual("c", dict["3"]);
            Assert.AreEqual("d     d", dict["4"]);
            Assert.AreEqual("        e", dict["5"]);
            Assert.AreEqual("f", dict["6"]);
            Assert.AreEqual("g", dict["7"]);

            dict = data[1].dict;
            Assert.AreEqual("AAAA", dict["1"]);
            Assert.AreEqual("B", dict["2"]);
            Assert.AreEqual("CCC", dict["3"]);
            Assert.AreEqual("DDDDDDDD", dict["4"]);
            Assert.AreEqual("EEEEEEEEE", dict["5"]);
            Assert.AreEqual("F", dict["6"]);
            Assert.AreEqual("GGGG", dict["7"]);
        }