public void ContainsKey() { OccurrenceDictionary dic = new OccurrenceDictionary(); IDocument doc = MockDocument("Doc", "Doc", "d", DateTime.Now); Assert.IsFalse(dic.ContainsKey(doc), "ContainsKey should return false"); dic.Add(doc, new SortedBasicWordInfoSet()); Assert.IsTrue(dic.ContainsKey(doc), "ContainsKey should return true"); Assert.IsFalse(dic.ContainsKey(MockDocument("Doc2", "Doc 2", "d", DateTime.Now)), "ContainsKey should return false"); IDocument doc2 = MockDocument("Doc", "Doc", "d", DateTime.Now); Assert.IsTrue(dic.ContainsKey(doc2), "ContainsKey should return true"); }
public void ContainsKey_Key_Null() { OccurrenceDictionary sut = new OccurrenceDictionary(); var ex = Assert.Throws <ArgumentNullException>(() => sut.ContainsKey(null)); Assert.Equal("Value cannot be null.\r\nParameter name: key", ex.Message); }
public void ContainsKey_NullKey() { OccurrenceDictionary dic = new OccurrenceDictionary(); dic.ContainsKey(null); }
/// <summary> /// Tries to load all data related to a word from the database. /// </summary> /// <param name="text">The word text.</param> /// <param name="word">The returned word.</param> /// <param name="connection">An open database connection.</param> /// <returns><c>true</c> if the word is found, <c>false</c> otherwise.</returns> private bool TryFindWord(string text, out Word word, DbConnection connection) { // 1. Find word - if not found, return // 2. Read all raw word mappings // 3. Read all documents (unique) // 4. Build result data structure ICommandBuilder builder = GetCommandBuilder(); QueryBuilder queryBuilder = new QueryBuilder(builder); string query = queryBuilder.SelectFrom("IndexWord", new string[] { "Id" }); query = queryBuilder.Where(query, "Text", WhereOperator.Equals, "Text"); List<Parameter> parameters = new List<Parameter>(1); parameters.Add(new Parameter(ParameterType.String, "Text", text)); DbCommand command = builder.GetCommand(connection, query, parameters); int wordId = ExecuteScalar<int>(command, -1, false); if(wordId == -1) { word = null; return false; } // Read all raw mappings query = queryBuilder.SelectFrom("IndexWordMapping"); query = queryBuilder.Where(query, "Word", WhereOperator.Equals, "WordId"); parameters = new List<Parameter>(1); parameters.Add(new Parameter(ParameterType.Int32, "WordId", wordId)); command = builder.GetCommand(connection, query, parameters); DbDataReader reader = ExecuteReader(command, false); List<DumpedWordMapping> mappings = new List<DumpedWordMapping>(2048); while(reader != null && reader.Read()) { mappings.Add(new DumpedWordMapping((uint)wordId, (uint)(int)reader["Document"], (ushort)(short)reader["FirstCharIndex"], (ushort)(short)reader["WordIndex"], (byte)reader["Location"])); } CloseReader(reader); if(mappings.Count == 0) { word = null; return false; } // Find all documents query = queryBuilder.SelectFrom("IndexDocument"); query = queryBuilder.Where(query, "Id", WhereOperator.Equals, "DocId"); parameters = new List<Parameter>(1); parameters.Add(new Parameter(ParameterType.Int32, "DocId", 0)); Dictionary<uint, IDocument> documents = new Dictionary<uint, IDocument>(64); foreach(DumpedWordMapping map in mappings) { uint docId = map.DocumentID; if(documents.ContainsKey(docId)) continue; parameters[0].Value = (int)docId; command = builder.GetCommand(connection, query, parameters); reader = ExecuteReader(command, false); if(reader != null && reader.Read()) { DumpedDocument dumpedDoc = new DumpedDocument(docId, reader["Name"] as string, reader["Title"] as string, reader["TypeTag"] as string, (DateTime)reader["DateTime"]); IDocument document = BuildDocument(dumpedDoc); if(document != null) documents.Add(docId, document); } CloseReader(reader); } OccurrenceDictionary occurrences = new OccurrenceDictionary(mappings.Count); foreach(DumpedWordMapping map in mappings) { if(!occurrences.ContainsKey(documents[map.DocumentID])) { occurrences.Add(documents[map.DocumentID], new SortedBasicWordInfoSet(2)); } occurrences[documents[map.DocumentID]].Add(new BasicWordInfo( map.FirstCharIndex, map.WordIndex, WordLocation.GetInstance(map.Location))); } word = new Word((uint)wordId, text, occurrences); return true; }
public void ContainsKey_NullKey() { OccurrenceDictionary dic = new OccurrenceDictionary(); Assert.That(() => dic.ContainsKey(null), Throws.ArgumentNullException); }
public void ContainsKey_NullKey() { OccurrenceDictionary dic = new OccurrenceDictionary(); dic.ContainsKey(null); }
public void ContainsKey() { OccurrenceDictionary dic = new OccurrenceDictionary(); IDocument doc = MockDocument("Doc", "Doc", "d", DateTime.Now); Assert.IsFalse(dic.ContainsKey(doc), "ContainsKey should return false"); dic.Add(doc, new SortedBasicWordInfoSet()); Assert.IsTrue(dic.ContainsKey(doc), "ContainsKey should return true"); Assert.IsFalse(dic.ContainsKey(MockDocument("Doc2", "Doc 2", "d", DateTime.Now)), "ContainsKey should return false"); IDocument doc2 = MockDocument("Doc", "Doc", "d", DateTime.Now); Assert.IsTrue(dic.ContainsKey(doc2), "ContainsKey should return true"); }