Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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>)));
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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"));
        }
Esempio n. 9
0
        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"));
        }
Esempio n. 10
0
 /// <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));
 }
Esempio n. 11
0
        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);
                }
            }
        }