Esempio n. 1
0
        protected override AtomGroup NewAtomGroup(AtomGroup.LogicalOperator logicalOperator, object[] content)
        {
            if (equivalents.Count == 0)
            {
                return(new AtomGroup(logicalOperator, content));
            }

            // if we have equivalent atoms, try to translate content into equivalent sub-groups
            ArrayList enrichedContent = new ArrayList();

            foreach (object atomOrAtomGroup in content)
            {
                if (atomOrAtomGroup is Atom)
                {
                    Atom      atom            = (Atom)atomOrAtomGroup;
                    ArrayList atomEquivalents = Equivalent.GetAll(equivalents, atom, new ArrayList());

                    if (atomEquivalents.Count > 1)
                    {
                        if (logicalOperator == AtomGroup.LogicalOperator.Or)
                        {
                            // in an OR block, negative atoms are surrounded by AND
                            if (atom.Negative)
                            {
                                enrichedContent.Add(new AtomGroup(AtomGroup.LogicalOperator.And, atomEquivalents.ToArray()));
                            }
                            else
                            {
                                enrichedContent.AddRange(atomEquivalents);
                            }
                        }
                        else
                        {
                            // in an AND block, positive atoms are surrounded by OR
                            if (atom.Negative)
                            {
                                enrichedContent.AddRange(atomEquivalents);
                            }
                            else
                            {
                                enrichedContent.Add(new AtomGroup(AtomGroup.LogicalOperator.Or, atomEquivalents.ToArray()));
                            }
                        }
                    }
                    else
                    {
                        // add atoms that have found no equivalents
                        enrichedContent.AddRange(atomEquivalents);
                    }
                }
                else
                {
                    // directly add atom groups
                    enrichedContent.Add(atomOrAtomGroup);
                }
            }

            return(new AtomGroup(logicalOperator, content, enrichedContent.ToArray()));
        }
Esempio n. 2
0
        protected virtual void WriteEquivalent(XmlElement target, Equivalent equivalent)
        {
            XmlElement equivalentElement = Document.CreateElement("Equivalent", DatalogNamespaceURL);

            WriteLabel(equivalentElement, equivalent.Label);
            WriteEquivalentAtom(equivalentElement, equivalent.FirstAtom);
            WriteEquivalentAtom(equivalentElement, equivalent.SecondAtom);
            target.AppendChild(equivalentElement);
        }
Esempio n. 3
0
        public void RejectsTypedObjectMismatch()
        {
            Action act = () =>
            {
                Mock.Get(this.service).Verify(
                    x => x.DoSomething(It.Is(Equivalent.To <TestObject>(this.fixture.Create <TestObject>()))));
            };

            act.Should().Throw <AssertFailedException>();
        }
Esempio n. 4
0
 public void MatchesDynamicObject()
 {
     Mock.Get(this.service).Verify(
         x => x.DoSomething(
             It.Is(
                 Equivalent.To <TestObject>(
                     new
     {
         Value = [email protected], Child = new { ChildValue = [email protected] }
     }))));
 }
Esempio n. 5
0
 public void MatchesTypedObject()
 {
     Mock.Get(this.service).Verify(x => x.DoSomething(It.Is(Equivalent.To <TestObject>(this.from))));
 }
        //вибір пункту меню, звертання до моделі, повернення кількості слів, виведення відповідного повідомлення
        void BorderMouseLeftClick(object sender, EventArgs e)
        {
            Window           window = win as Window;
            FrameworkElement bord   = sender as FrameworkElement;
            int minWordCount        = 0;
            int realWordCount       = 0;

            switch (bord.Name)
            {
            case ("wordsBorder"): {
                Groups groups = new Groups(userId, window.Left, window.Top);
                groups.WindowState = window.WindowState;
                groups.Show();
                window.Close();
                break;
            }

            case ("translateVariantBorder"): {
                minWordCount  = (int)Enum.Parse(typeof(MinWordsCount), "translate");
                realWordCount = model.GetCount("translate");
                if (realWordCount < minWordCount)
                {
                    win.SendMessage("Недостаточно слов для упражнения, сейчас у вас " + realWordCount + " слов, а нужно " + minWordCount + " слов.");
                }
                else
                {
                    Equivalent equivalent = new Equivalent(userId, "translate", window.Left, window.Top);
                    equivalent.WindowState = window.WindowState;
                    equivalent.ShowDialog();
                    //win.Close();
                }
                //use try catch because window may automatically close if words count < that must be
                //try
                //{
                //equivalent.Show();
                //win.Close();
                //}
                //catch { }
                break;
            }

            case ("englishVariantBorder"): {
                minWordCount  = (int)Enum.Parse(typeof(MinWordsCount), "equivalent");
                realWordCount = model.GetCount("equivalent");
                if (realWordCount < minWordCount)
                {
                    win.SendMessage("Недостаточно слов для упражнения, сейчас у вас " + realWordCount + " слов, а нужно " + minWordCount + " слов.");
                }
                else
                {
                    Equivalent equivalent = new Equivalent(userId, "equivalent", window.Left, window.Top);
                    //equivalent.SourceInitialized += (s, a) => equivalent.WindowState = System.Windows.WindowState.Maximized;
                    equivalent.WindowState = window.WindowState;
                    equivalent.ShowDialog();
                    //win.Close();
                }
                break;
            }

            case ("listeningBorder"): {
                minWordCount  = (int)Enum.Parse(typeof(MinWordsCount), "listening");
                realWordCount = model.GetCount("listening");
                if (realWordCount < minWordCount)
                {
                    win.SendMessage("Недостаточно слов для упражнения, сейчас у вас " + realWordCount + " слов, а нужно " + minWordCount + " слов.");
                }
                else
                {
                    Equivalent equivalent = new Equivalent(userId, "listening", window.Left, window.Top);
                    equivalent.WindowState = window.WindowState;
                    equivalent.ShowDialog();
                }
                break;
            }

            case ("constructorBorder"): {
                minWordCount  = (int)Enum.Parse(typeof(MinWordsCount), "constructor");
                realWordCount = model.GetCount("constructor");
                if (realWordCount < minWordCount)
                {
                    win.SendMessage("Недостаточно слов для упражнения, сейчас у вас " + realWordCount + " слов, а нужно " + minWordCount + " слов.");
                }
                else
                {
                    Equivalent equivalent = new Equivalent(userId, "constructor", window.Left, window.Top);
                    equivalent.WindowState = window.WindowState;
                    equivalent.ShowDialog();
                }
                break;
            }

            case ("synonymBorder"): {
                Equivalent equivalent = new Equivalent(userId, "synonym", window.Left, window.Top);
                try
                {
                    equivalent.WindowState = window.WindowState;
                    equivalent.ShowDialog();
                }
                catch { }
                break;
            }

            case ("repeatBorder"): { break; }

            default: { break; }
            }
        }