public void Parse_Fact_with_3_Args()
{
// Try to parse 'predicate.'
Write("factnoargs.txt", "predicate(X,X,X).");
StreamReader sr = new StreamReader("C:\\factnoargs.txt");
PrologCodeParser parser = new PrologCodeParser();
parser.Scanner = new PrologScanner(sr);
BinaryTree ast = parser.Term(1200);
sr.Close();
// Expect: BinaryTree("predicate", null, null, null);
Assert.AreEqual("predicate", ast.Name);
Assert.IsNull(ast.Left);
Assert.IsNull(ast.Right);
ArrayList args = new ArrayList();
ast.Flatten((BinaryTree)ast.Arguments[0], ref args);
Assert.AreEqual(3, args.Count);
}