public void MultipleEntriesTest() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = {David A. Aaker}, title = {Multivariate statistics} } @book{ baker:1912, author = {David A. Baker}, title = {Multivariate statistics 2} }"); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.AreEqual(2, file.Entries.Count); Assert.AreEqual("aaker:1912", file.Entries.First().Key); Assert.AreEqual("book", file.Entries.First().Type); Assert.AreEqual(2, file.Entries.First().Tags.Count); Assert.AreEqual("author", file.Entries.First().Tags.First().Key); Assert.AreEqual("David A. Aaker", file.Entries.First().Tags.First().Value); Assert.AreEqual("title", file.Entries.First().Tags.ToList()[1].Key); Assert.AreEqual("Multivariate statistics", file.Entries.First().Tags.ToList()[1].Value); Assert.AreEqual("baker:1912", file.Entries.ToList()[1].Key); Assert.AreEqual("book", file.Entries.ToList()[1].Type); Assert.AreEqual(2, file.Entries.ToList()[1].Tags.Count); Assert.AreEqual("author", file.Entries.ToList()[1].Tags.First().Key); Assert.AreEqual("David A. Baker", file.Entries.ToList()[1].Tags.First().Value); Assert.AreEqual("title", file.Entries.ToList()[1].Tags.ToList()[1].Key); Assert.AreEqual("Multivariate statistics 2", file.Entries.ToList()[1].Tags.ToList()[1].Value); }
public void TestCommaInTagValue() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = {Günther, C.W. and Van Der Aalst, W.M.P.} }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(15, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new Text("aaker:1912", 6), tokens[3]); Assert.AreEqual(new Comma(",", 17), tokens[4]); Assert.AreEqual(new Text("author", 18), tokens[5]); Assert.AreEqual(new Equals("=", 107), tokens[6]); Assert.AreEqual(new OpeningBrace(" {", 108), tokens[7]); Assert.AreEqual(new Text("Günther", 110), tokens[8]); Assert.AreEqual(new Comma(",", 117), tokens[9]); Assert.AreEqual(new Text("C.W. and Van Der Aalst", 118), tokens[10]); Assert.AreEqual(new Comma(",", 141), tokens[11]); Assert.AreEqual(new Text("W.M.P.", 142), tokens[12]); Assert.AreEqual(new ClosingBrace("}", 149), tokens[13]); Assert.AreEqual(new ClosingBrace("}", 150), tokens[14]); }
public void TestDoubleQuoteDelimiterTags() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), " \""); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(1, tokens.Count()); Assert.IsTrue(tokens[0].GetType() == typeof(ValueQuote)); }
public void FuzzyMiningTestFileTest() { using (StreamReader reader = new StreamReader("Test Files\\Fuzzy Mining.bib")) { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), reader.ReadToEnd()); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.AreEqual(3, file.Entries.Count); } }
public void BracesInValueTest() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = {David A. ()ker}, }"); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.AreEqual(1, file.Entries.Count); Assert.AreEqual("aaker:1912", file.Entries.First().Key); Assert.AreEqual("book", file.Entries.First().Type); Assert.AreEqual(1, file.Entries.First().Tags.Count); Assert.AreEqual("author", file.Entries.First().Tags.First().Key); Assert.AreEqual("David A. ()ker", file.Entries.First().Tags.First().Value); }
public void CommaInTagValueParseTest() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = {Günther, C.W. and Van Der Aalst, W.M.P.} }"); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.AreEqual(1, file.Entries.Count); Assert.AreEqual("aaker:1912", file.Entries.First().Key); Assert.AreEqual("book", file.Entries.First().Type); Assert.AreEqual(1, file.Entries.First().Tags.Count); Assert.AreEqual("author", file.Entries.First().Tags.First().Key); Assert.AreEqual("Günther, C.W. and Van Der Aalst, W.M.P.", file.Entries.First().Tags.First().Value); }
public void TestBracesInTagValue() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = { tes(;)est } }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(11, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new Text("aaker:1912", 6), tokens[3]); Assert.AreEqual(new Comma(",", 17), tokens[4]); Assert.AreEqual(new Text("author", 18), tokens[5]); Assert.AreEqual(new Equals("=", 107), tokens[6]); Assert.AreEqual(new OpeningBrace(" {", 108), tokens[7]); Assert.AreEqual(new Text("tes(;)est", 110), tokens[8]); Assert.AreEqual(new ClosingBrace("}", 121), tokens[9]); Assert.AreEqual(new ClosingBrace("}", 122), tokens[10]); }
public void SimpleParserWithDoubleQuoteTest() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = ""David A. Aaker"" }"); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.AreEqual(1, file.Entries.Count); Assert.AreEqual("aaker:1912", file.Entries.First().Key); Assert.AreEqual("book", file.Entries.First().Type); Assert.AreEqual(1, file.Entries.First().Tags.Count); Assert.AreEqual("author", file.Entries.First().Tags.First().Key); Assert.AreEqual("David A. Aaker", file.Entries.First().Tags.First().Value); }
public void ParseStringDefinitionsTest() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @" @String{pub-ACM = ""ACM Press""} @book{ aaker:1912, author = { tes(;)est } }"); BibtexParser parser = new BibtexParser(tokenizer); BibtexFile file = parser.Parse(); Assert.IsTrue(file.StringDefinitions.ContainsKey("pub-ACM")); Assert.AreEqual("ACM Press", file.StringDefinitions["pub-ACM"]); Assert.AreEqual(1, file.Entries.Count); Assert.AreEqual("aaker:1912", file.Entries.First().Key); Assert.AreEqual("book", file.Entries.First().Type); }
public void TestTokenizerSimple() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), "@book{ }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(4, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new ClosingBrace(" }" ,6), tokens[3]); }
public void TestTokenizerMultipleTags() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = {David A. Aaker}, title = {Multivariate Analysis in Marketing} }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(17, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new Text("aaker:1912", 6), tokens[3]); Assert.AreEqual(new Comma(",", 17), tokens[4]); Assert.AreEqual(new Text("author", 18), tokens[5]); Assert.AreEqual(new Equals("=", 107), tokens[6]); Assert.AreEqual(new OpeningBrace(" {", 108), tokens[7]); Assert.AreEqual(new Text("David A. Aaker", 110), tokens[8]); Assert.AreEqual(new ClosingBrace("}", 124), tokens[9]); Assert.AreEqual(new Comma(",", 125), tokens[10]); Assert.AreEqual(new Text("title", 126), tokens[11]); Assert.AreEqual(new Equals("=", 214), tokens[12]); Assert.AreEqual(new OpeningBrace(" {", 215), tokens[13]); Assert.AreEqual(new Text("Multivariate Analysis in Marketing", 217), tokens[14]); Assert.AreEqual(new ClosingBrace("}", 251), tokens[15]); Assert.AreEqual(new ClosingBrace("}", 252), tokens[16]); }
public void TestTokenizerKey() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), "@book{ aaker:1912, }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(6, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new Text(" aaker:1912", 6), tokens[3]); Assert.AreEqual(new Comma(",", 17), tokens[4]); Assert.AreEqual(new ClosingBrace(" }", 18), tokens[5]); }
public void TestTokenizerFullItemWithQuote() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = ""David A. Aaker"" }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(11, tokens.Count()); Assert.AreEqual(new At("@"), tokens[0]); Assert.AreEqual(new Text("book", 1), tokens[1]); Assert.AreEqual(new OpeningBrace("{", 5), tokens[2]); Assert.AreEqual(new Text("aaker:1912", 6), tokens[3]); Assert.AreEqual(new Comma(",", 17), tokens[4]); Assert.AreEqual(new Text("author", 18), tokens[5]); Assert.AreEqual(new Equals("=", 107), tokens[6]); Assert.IsTrue(tokens[7].GetType() == typeof(ValueQuote)); Assert.AreEqual(new Text("David A. Aaker", 110), tokens[8]); Assert.IsTrue(tokens[9].GetType() == typeof(ValueQuote)); Assert.AreEqual(new ClosingBrace("}", 125), tokens[10]); }
public void TestTokenizer1() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), "test"); Assert.AreEqual(new Text("test"),tokenizer.NextToken()); }
public void TestStringValue() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @" @String{pub-ACM = ""ACM Press""} @book{ aaker:1912, author = { tes(;)est } }"); List<AbstractToken> tokens = tokenizer.GetAllTokens().ToList(); Assert.AreEqual(20, tokens.Count()); Assert.IsTrue(tokens[0].GetType() == typeof(At)); Assert.IsTrue(tokens[1].GetType() == typeof(Text)); Assert.IsTrue(tokens[2].GetType() == typeof(OpeningBrace)); Assert.IsTrue(tokens[3].GetType() == typeof(Text)); Assert.IsTrue(tokens[3].GetValue() == "pub-ACM"); Assert.IsTrue(tokens[4].GetType() == typeof(Equals)); Assert.IsTrue(tokens[5].GetType() == typeof(ValueQuote)); Assert.IsTrue(tokens[6].GetType() == typeof(Text)); Assert.IsTrue(tokens[6].GetValue() == "ACM Press"); Assert.IsTrue(tokens[7].GetType() == typeof(ValueQuote)); Assert.IsTrue(tokens[8].GetType() == typeof(ClosingBrace)); }
public void TestPrevious() { Tokenizer tokenizer = new Tokenizer(new ExpressionDictionary(), @"@book{ aaker:1912, author = { tes~est } }"); Assert.Throws<ArgumentOutOfRangeException>(() => tokenizer.GetPreviousCharacters(10)); tokenizer.NextToken(); tokenizer.NextToken(); tokenizer.NextToken(); tokenizer.NextToken(); tokenizer.NextToken(); AbstractToken token = tokenizer.NextToken(); Assert.AreEqual(" author ", tokenizer.GetPreviousCharacters(10)); }