private static bool AddImport(JObject wordJO, JObject meanJO, JObject linkJO) { var wMap = new Dictionary <int, int>(); var mMap = new Dictionary <int, int>(); int tmp; var w = new DBWord(); foreach (var jp in wordJO) { if (words.TryGetValue(w.Letters = jp.Key.ToLower(), out tmp)) { wMap.Add(w.Id = jp.Value.ToInt(), tmp); } else { db.Insert(w); wMap.Add(jp.Value.ToInt(), w.Id); words.Add(w.Letters, w.Id); eles.Add(w.ToStat()); WrongCount += w.wrong + 1; } } var m = new DBMeaning(); foreach (var jp in meanJO) { if (means.TryGetValue(m.Meaning = jp.Key, out tmp)) { mMap.Add(m.Id = jp.Value.ToInt(), tmp); } else { db.Insert(m); mMap.Add(jp.Value.ToInt(), m.Id); means.Add(m.Meaning, m.Id); eles.Add(m.ToStat()); WrongCount += m.wrong + 1; } } var t = new DBTranslation(); foreach (var jp in linkJO) { t.Wid = wMap[jp.Key.ToInt()]; foreach (var ji in jp.Value as JArray) { t.Mid = mMap[ji.ToInt()]; if (!e2c.Contains(t.Wid, t.Mid)) { e2c.Add(t.Wid, t.Mid); c2e.Add(t.Mid, t.Wid); db.Insert(t); } } } updTimeAll = updTimeDetail = DateTime.Now.Ticks; return(true); }
public static void ShouldContainKeyValue() { var multiDict = new MultiValueDictionary <string, string>(); multiDict.AddRange("key2", values2); multiDict.AddRange("key1", values1); multiDict.Add("key3", "海亀"); Assert.IsTrue(multiDict.Contains("key2", "dojpa4")); Assert.IsTrue(multiDict.Contains("key3", "海亀")); Assert.IsTrue(multiDict.Contains("key1", "test1")); }
public static void ShouldContainValue() { var multiDict = new MultiValueDictionary <int, string>(); multiDict.AddRange(100, values2); multiDict.AddRange(-5, values1); multiDict.Add(1337, "海亀"); Assert.IsTrue(multiDict.ContainsValue("dojpa2")); Assert.IsTrue(multiDict.ContainsValue("海亀")); Assert.IsTrue(multiDict.ContainsValue("test4")); Assert.IsTrue(multiDict.Contains("海亀")); Assert.IsTrue(multiDict.Contains("test1")); Assert.IsTrue(multiDict.Contains("dojpa4")); }
public bool RemoveConnectionFromAllRooms(ConnectionId connectionId) { var nullRoomIdEncountered = false; start_over: foreach (var roomId in _roomsConnections.Keys) { // The production server started to report a dictionary key (roomId below) that was null. It consequently failed and no user was removed from the chat or any rooms. // Though I tried to use the contain method with a null roomId, the dev environment didn't complain at all! // Note that MultiValueDictionary is an experimental collection from Microsoft. Hence, it might not be fully stable // So, we need some more info to understand what's going on here. if (roomId != null) { if (_roomsConnections.Contains(roomId, connectionId)) { _roomsConnections.Remove(roomId, connectionId); goto start_over; // Because you can't enumerate a collection that has just been modified } else { nullRoomIdEncountered = true; } } } return(nullRoomIdEncountered); }
public void MultiValueDictionaryContainsTest() { MultiValueDictionary <Int32, String> dictionary = new MultiValueDictionary <Int32, String>(); foreach (KeyValuePair <Int32, List <String> > item in _items) { dictionary.Add(item.Key, item.Value); } Assert.AreEqual(true, dictionary.ContainsKey(1)); Assert.AreEqual(false, dictionary.ContainsKey(0)); Assert.AreEqual(true, dictionary.Contains(new KeyValuePair <Int32, ICollection <String> >(1, new List <String> { "1", "11" } as ICollection <String>))); Assert.AreEqual(false, dictionary.Contains(new KeyValuePair <Int32, ICollection <String> >(1, new List <String> { "0", "11" } as ICollection <String>))); }
bool TestFilter(TestMethod testMethod) { if (!String.IsNullOrEmpty(filterSearchText)) { if (testMethod.MethodName.IndexOf(filterSearchText, StringComparison.InvariantCultureIgnoreCase) < 0 && testMethod.TestClass.TypeName.IndexOf(filterSearchText, StringComparison.InvariantCultureIgnoreCase) < 0 && testMethod.DisplayName.IndexOf(filterSearchText, StringComparison.InvariantCultureIgnoreCase) < 0) { return(false); } } if (!isRunning) { if (passedToolStripButton.Checked && testMethod.RunStatus != TestStatus.Passed) { return(false); } if (failedToolStripButton.Checked && testMethod.RunStatus != TestStatus.Failed) { return(false); } if (skippedToolStripButton.Checked && testMethod.RunStatus != TestStatus.Skipped) { return(false); } } if (!filterAssemblies.Contains(testMethod.TestClass.TestAssembly)) { return(false); } if (filterTraits.Count == 0) { return(true); } foreach (string name in testMethod.Traits.Keys) { foreach (string value in testMethod.Traits[name]) { if (filterTraits.Contains(name, value)) { return(true); } } } return(false); }
internal bool OnEvent(string eventType, Value128 id, out object data) { var contains = _eventsRaised.Contains(eventType, id); if (contains) { _eventsRaised.Remove(eventType, id); _eventsHandled.Remove(id, eventType); data = _eventData[id]; if (data != null) { _eventData.Remove(id); } return(true); } _eventsHandled.Add(id, eventType); data = default; return(false); }
public static void ShouldContainKey() { var multiDict = new MultiValueDictionary<string, string>(); multiDict.AddRange("key2", values2); multiDict.AddRange("key1", values1); multiDict.Add("key3", "海亀"); Assert.IsTrue(multiDict.ContainsKey("key1")); Assert.IsTrue(multiDict.ContainsKey("key3")); Assert.IsTrue(multiDict.ContainsKey("key2")); Assert.IsTrue(multiDict.Contains("key1")); Assert.IsTrue(multiDict.Contains("key2")); Assert.IsTrue(multiDict.Contains("key3")); }
public static void ShouldContainValue() { var multiDict = new MultiValueDictionary<int, string>(); multiDict.AddRange(100, values2); multiDict.AddRange(-5, values1); multiDict.Add(1337, "海亀"); Assert.IsTrue(multiDict.ContainsValue("dojpa2")); Assert.IsTrue(multiDict.ContainsValue("海亀")); Assert.IsTrue(multiDict.ContainsValue("test4")); Assert.IsTrue(multiDict.Contains("海亀")); Assert.IsTrue(multiDict.Contains("test1")); Assert.IsTrue(multiDict.Contains("dojpa4")); }
/// <summary> /// Check if the list contains the opcode and the associated size. /// </summary> /// <param name="opCode">The opcode of the packet.</param> /// <param name="size">The size of the packet.</param> /// <returns>Returns true if the list contains both the opcode and size, false otherwise.</returns> public bool ContainsOpCodeAndSize(int opCode, int size) { return(m_ignoredPackets.Contains(opCode, size)); }
public IEnumerable <SentenceData> Read(SolarixGrammarEngineNET.GrammarEngine2 gren) { // Сначала надо получить из словарной список слов, которые дают однозначную лемматизацию. HashSet <int> classes = new HashSet <int>(); foreach (var class_name in "СУЩЕСТВИТЕЛЬНОЕ ПРИЛАГАТЕЛЬНОЕ ГЛАГОЛ ИНФИНИТИВ ДЕЕПРИЧАСТИЕ НАРЕЧИЕ".Split(' ')) { classes.Add(gren.FindPartOfSpeech(class_name)); } HashSet <string> forms = new HashSet <string>(); MultiValueDictionary <string, string> form2lemma = new MultiValueDictionary <string, string>(); MultiValueDictionary <string, int> form2entry = new MultiValueDictionary <string, int>(); Console.WriteLine("Generating the list of words and lemmas..."); IntPtr hList = SolarixGrammarEngineNET.GrammarEngine.sol_ListEntries(hEngine: gren.GetEngineHandle(), Flags: 0, EntryType: 0, Mask: ".+", Language: -1, PartOfSpeech: -1); int nb_entries = SolarixGrammarEngineNET.GrammarEngine.sol_CountInts(hList); for (int i = 0; i < nb_entries; ++i) { int id_entry = SolarixGrammarEngineNET.GrammarEngine.sol_GetInt(hList, i); if (classes.Contains(gren.GetEntryClass(id_entry))) { string lemma = gren.GetEntryName(id_entry); if (char.IsLetter(lemma[0])) { IntPtr hForms = SolarixGrammarEngineNET.GrammarEngine.sol_ListEntryForms(gren.GetEngineHandle(), id_entry); int nb_forms = SolarixGrammarEngineNET.GrammarEngine.sol_CountStrings(hForms); for (int iform = 0; iform < nb_forms; ++iform) { string form = SolarixGrammarEngineNET.GrammarEngine.sol_GetStringFX(hForms, iform); form = gren.RestoreCasing(id_entry, form); if (!form2lemma.Contains(form, lemma)) { form2lemma.Add(form, lemma); form2entry.Add(form, id_entry); forms.Add(form); } } SolarixGrammarEngineNET.GrammarEngine.sol_DeleteStrings(hForms); } if ((i % 10000) == 0) { Console.Write("{0}/{1}\r", i, nb_entries); } } } SolarixGrammarEngineNET.GrammarEngine.sol_DeleteInts(hList); List <string> unambiguous_forms = forms.Where(z => form2lemma[z].Count == 1).ToList(); Console.WriteLine("{0} forms are good for lemmatization", unambiguous_forms.Count); foreach (string word in unambiguous_forms) { //SolarixGrammarEngineNET.AnalysisResults morphology = gren.AnalyzeMorphology(word, -1); SolarixGrammarEngineNET.AnalysisResults tokenization = gren.AnalyzeMorphology(word, -1, SolarixGrammarEngineNET.GrammarEngine.MorphologyFlags.SOL_GREN_TOKENIZE_ONLY, 0); bool ok = true; SentenceData sent = new SentenceData(word); for (int i = 0; i < tokenization.Count; ++i) { if (i == 1 && !form2entry[word].Contains(tokenization[i].GetEntryID())) { ok = false; } WordData word_data = new WordData(); word_data.word = tokenization[i].GetWord(); word_data.word_index = tokenization[i].GetWordPosition(); word_data.entry_id = tokenization[i].GetEntryID(); word_data.part_of_speech = gren.GetEntryClass(word_data.entry_id); word_data.all_projs = tokenization[i]; foreach (var tag in tokenization[i].GetPairs()) { word_data.tags.Add(Tuple.Create(tag.CoordID, tag.StateID)); } word_data.lemma = gren.GetEntryName(word_data.entry_id).ToLower(); if (word_data.lemma == "???") { word_data.lemma = word_data.word; } else if (word_data.lemma == "NUMBER_") { word_data.lemma = word_data.word; } sent.AddWord(word_data); } if (ok) { yield return(sent); } } }