feat: initial support for fragment parsing, ref: NOISSUE
This commit is contained in:
@@ -26,7 +26,7 @@ public class TextParserTests
|
||||
.EndRepetition()
|
||||
.Build();
|
||||
|
||||
var parser = new LineParser(schema);
|
||||
var parser = new LineParser<InputSchemaContext>(schema);
|
||||
var tokens = parser.ParseLine(testInput1);
|
||||
|
||||
Assert.Equal(4, tokens.Count);
|
||||
@@ -51,7 +51,7 @@ public class TextParserTests
|
||||
.Expect(InputType.Integer)
|
||||
.Build();
|
||||
|
||||
var parser = new LineParser(schema);
|
||||
var parser = new LineParser<InputSchemaContext>(schema);
|
||||
var tokens = parser.ParseLine(testInput1);
|
||||
|
||||
Assert.Equal(4, tokens.Count);
|
||||
@@ -79,7 +79,7 @@ public class TextParserTests
|
||||
.EndRepetition()
|
||||
.Build();
|
||||
|
||||
var parser = new LineParser(schema);
|
||||
var parser = new LineParser<InputSchemaContext>(schema);
|
||||
var tokens = parser.ParseLine(testInput2);
|
||||
|
||||
Assert.Equal(6, tokens.Count);
|
||||
@@ -107,7 +107,7 @@ public class TextParserTests
|
||||
.EndRepetition()
|
||||
.Build();
|
||||
|
||||
var parser = new TextParser(schema);
|
||||
var parser = new TextParser<InputSchemaContext>(schema);
|
||||
var rows = parser
|
||||
.SetInputText(testInput3)
|
||||
.Parse()
|
||||
@@ -139,7 +139,7 @@ public class TextParserTests
|
||||
.EndRepetition()
|
||||
.Build();
|
||||
|
||||
var parser = new TextParser(schema);
|
||||
var parser = new TextParser<InputSchemaContext>(schema);
|
||||
var columns = parser
|
||||
.SetInputText(testInput3)
|
||||
.Parse()
|
||||
@@ -174,7 +174,7 @@ public class TextParserTests
|
||||
.EndRepetition()
|
||||
.Build();
|
||||
|
||||
var parser = new TextParser(schema);
|
||||
var parser = new TextParser<InputSchemaContext>(schema);
|
||||
var rows = parser
|
||||
.SetInputText(testInput4)
|
||||
.Parse()
|
||||
@@ -199,4 +199,55 @@ public class TextParserTests
|
||||
Assert.Equal(InputType.String, rows[2][3].GetInputType());
|
||||
Assert.Equal(InputType.String, rows[2][4].GetInputType());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FragmentParser_SimpleTest()
|
||||
{
|
||||
var schemaBuilder = new FragmentSchemaBuilder();
|
||||
var schema = schemaBuilder
|
||||
.StartOptions()
|
||||
.Option()
|
||||
.Expect("nums(")
|
||||
.Expect(InputType.Integer)
|
||||
.Repeat()
|
||||
.Expect(",")
|
||||
.Expect(InputType.Integer)
|
||||
.EndRepetition()
|
||||
.Expect(")")
|
||||
.Option()
|
||||
.Expect("strs(")
|
||||
.Expect(InputType.String)
|
||||
.Repeat()
|
||||
.Expect(",")
|
||||
.Expect(InputType.String)
|
||||
.EndRepetition()
|
||||
.Expect(")")
|
||||
.EndOptions()
|
||||
.Build();
|
||||
|
||||
var parser = new TextParser<FragmentSchemaContext>(schema);
|
||||
var rows = parser
|
||||
.SetInputText(testInput4)
|
||||
.Parse()
|
||||
.AsFragments();
|
||||
|
||||
Assert.Equal(3, rows.Count);
|
||||
Assert.Equal(6, rows[0].Count);
|
||||
Assert.Equal(3, rows[1].Count);
|
||||
Assert.Equal(5, rows[2].Count);
|
||||
// Assert.Equal(InputType.Integer, rows[0][0].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[0][1].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[0][2].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[0][3].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[0][4].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[0][5].GetInputType());
|
||||
// Assert.Equal(InputType.Integer, rows[1][0].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[1][1].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[1][2].GetInputType());
|
||||
// Assert.Equal(InputType.Integer, rows[2][0].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[2][1].GetInputType());
|
||||
// Assert.Equal(InputType.Integer, rows[2][2].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[2][3].GetInputType());
|
||||
// Assert.Equal(InputType.String, rows[2][4].GetInputType());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user