예제 #1
0
        protected override Damage OnModify(GameObject victim, GameObject attacker, Damage damage)
        {
            HealthComponent health;

            switch (this.data.Target)
            {
            case DamageSubject.Victim:
                health = victim.GetComponent <HealthComponent>();
                break;

            case DamageSubject.Attacker:
                health = attacker.GetComponent <HealthComponent>();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (!Comparator.Compare(health.HealthFraction, this.data.RequiredHealthFraction, this.data.Comparator))
            {
                return(damage);
            }

            var modified = new FloatModifier(this.data.Amount, ModifierType).Modify(damage.Amount);

            return(new Damage(modified, damage.Type, damage.WeaponSound, damage.Flags, damage.InfoFlags));
        }
예제 #2
0
        public void Compare_success()
        {
            var target = new Comparator <char>();

            var result = target.Compare("aabcxyfzzg", "abcdefg");

            var answer = new (char c, SesOperation o)[]
예제 #3
0
        public void TestMethod23()
        {
            //random test that check lexicographic ordering if case of only letters
            var comp = new Comparator();

            for (int i = 0; i < 100000; ++i)
            {
                var s1 = BuildRandomLettersString(random.Next(255));
                var s2 = BuildRandomLettersString(random.Next(255));

                var ret1 = comp.Compare(s1, s2);

                var ret2 = s1.CompareTo(s2);

                if (ret2 > 0)
                {
                    ret2 = 1;
                }
                if (ret2 < 0)
                {
                    ret2 = -1;
                }

                if (ret1 != ret2)
                {
                    Debug.WriteLine("");
                    Debug.WriteLine(s1);
                    Debug.WriteLine(s2);
                    Debug.WriteLine("");
                    Assert.Fail();
                }
            }
        }
예제 #4
0
        private Card GetWinningCard()
        {
            if (AllCardsEqual())
            {
                return(null);
            }

            Card winningCard;
            int  comparationResult = Comparator.Compare(ActiveCards[0], ActiveCards[1]);

            if (comparationResult == 1)
            {
                winningCard = ActiveCards[0];
            }
            else
            {
                winningCard = ActiveCards[1];
            }

            // Card winningCard = activCards[0];
            // foreach(Card card in activCards)
            // {
            //     if(comparator.Compare(card, winningCard) > 0)
            //     {
            //         winningCard = card;
            //     }

            // }
            return(winningCard);
        }
예제 #5
0
        void Run(string file)
        {
            List <TraningSet> traningSets = new List <TraningSet>();

            TraningSet traningSet = new TraningSet();

            traningSet.Load(@"tests\test", @"x.txt");
            traningSets.Add(traningSet);

//             TraningSet traningSet2 = new TraningSet();
//             traningSet2.Load(@"tests\test", @"2.txt");
//             traningSets.Add(traningSet2);

            try
            {
                Letter letter = new Letter();
                letter.Load(file);

                Comparator    comparator = new Comparator();
                HScanIntegral integral   = new HScanIntegral();

                char res = comparator.Compare(traningSets, letter, integral);

                Console.WriteLine("Result '" + res + "'");
            }
            catch (System.IO.FileNotFoundException)
            {
                Console.WriteLine("File not found " + file);
            }
        }
예제 #6
0
        public void TestMethod11()
        {
            var comp = new Comparator {
                IgnoreWhiteSpaces = false
            };

            Assert.IsTrue(comp.Compare("", "nsada") < 0);
        }
예제 #7
0
        public void TestMethod10()
        {
            var comp = new Comparator {
                IgnoreWhiteSpaces = false
            };

            Assert.IsTrue(comp.Compare("  \tabc\tdefgh ", "  \tabc x") < 0);
        }
예제 #8
0
        public void SimpleCompare_MissingUser_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            Models.ComparatorModelModerate objB = null;
            EntityHeader user = null;

            Assert.Throws <InvalidOperationException>(() => Comparator.Compare(objA, objB, user));
        }
예제 #9
0
        public void SimpleCompare_MissingUser_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            Models.ComparatorModelModerate objB = null;
            EntityHeader user = null;

            Comparator.Compare(objA, objB, user);
        }
예제 #10
0
        public void SimpleCompare_FirstNull_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            var objB = new Models.ComparatorModelSimple();

            var user = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");

            Comparator.Compare(objA, objB, user);
        }
예제 #11
0
        public void TestMethod9()
        {
            var comp = new Comparator {
                IgnoreWhiteSpaces = false
            };

            //space space tab vs space tab
            Assert.IsTrue(comp.Compare("  \tabc defgh ", " \tabc ") > 0);
        }
예제 #12
0
        public override void Activate(ActivationContext <Token <T, TProperty> > context)
        {
            var leftValue = _tokenValue.GetValue(context.Fact);

            if (_comparator.Compare(leftValue, _value))
            {
                base.Activate(context);
            }
        }
예제 #13
0
        public void SimpleCompare_FirstNull_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            var objB = new Models.ComparatorModelSimple();

            var user = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");

            Assert.Throws <InvalidOperationException>(() => Comparator.Compare(objA, objB, user));
        }
예제 #14
0
        public void TestMethod17()
        {
            //Maximum test with letters
            var comp = new Comparator();
            var s    = BuildRandomLettersString(255);

            Debug.WriteLine(s);
            Assert.IsTrue(comp.Compare(s, s) == 0);
        }
예제 #15
0
        public void TestMethod20()
        {
            //Maximum test with digits ( to test overflow of all primitive data types)
            var comp = new Comparator();
            var s    = BuildRandomDigitsString(255);

            Debug.WriteLine(s);
            Assert.IsTrue(comp.Compare(s, s) == 0);
        }
예제 #16
0
        public override int Compare(T o1, T o2)
        {
            int v = other.Compare(o1, o2);

            if (v != 0)
            {
                return(v);
            }
            return(second.Compare(o1, o2));
        }
예제 #17
0
        public void SimpleCompare_TypeMismatch_Exception()
        {
            var objA = new Models.ComparatorModelSimple();
            var objC = new Models.ComparatorModelModerate();


            var user = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");

            Assert.Throws <InvalidOperationException>(() => Comparator.Compare(objA, objC, user));
        }
예제 #18
0
        public void SimpleCompare_TypeMismatch_Exception()
        {
            var objA = new Models.ComparatorModelSimple();
            var objC = new Models.ComparatorModelModerate();


            var user = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");

            Comparator.Compare(objA, objC, user);
        }
예제 #19
0
        public void SimpleCompare_EmptyUser_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            Models.ComparatorModelModerate objB = null;
            var user = new EntityHeader()
            {
                Id = Guid.NewGuid().ToId()
            };

            Assert.Throws <InvalidOperationException>(() => Comparator.Compare(objA, objB, user));
        }
예제 #20
0
        protected override Damage OnModify(GameObject victim, GameObject attacker, Damage damage)
        {
            if (!Comparator.Compare(this.pathfinder.FindPath(victim, attacker.transform.position, false).Count, this.range,
                                    this.comparator))
            {
                return(damage);
            }

            return(new Damage(new FloatModifier(this.amount, ModifierType).Modify(damage.Amount),
                              damage.Type, damage.WeaponSound, damage.Flags, damage.InfoFlags));
        }
예제 #21
0
        public void SimpleCompare_EmptyUser_Exception()
        {
            Models.ComparatorModelModerate objA = null;
            Models.ComparatorModelModerate objB = null;
            var user = new EntityHeader()
            {
                Id = Guid.NewGuid().ToId()
            };

            Comparator.Compare(objA, objB, user);
        }
예제 #22
0
        public void SimpleCompare_Match()
        {
            var id = Guid.NewGuid().ToId();

            var objA = GetSimpleModel(id);
            var objB = GetSimpleModel(id);

            var user   = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");
            var result = Comparator.Compare(objA, objB, user);

            Assert.IsFalse(result.IsDirty);
        }
예제 #23
0
 /*
  * 1st version => specify behavior through a Functional Interface --
  * interface containing just one method.
  */
 public static void Sort <T>(List <T> elems, Comparator <T> cmp)
 {
     for (int i = 1; i < elems.Count; i++)
     {
         for (int j = i; j > 0 &&
              cmp.Compare(elems[j - 1], elems[j]) > 0; j--)
         {
             T t = elems[j - 1];
             elems[j - 1] = elems[j];
             elems[j]     = t;
         }
     }
 }
예제 #24
0
 // select sort
 public static void Sort(T[] arr, Comparator <T> comparator)
 {
     for (var i = 0; i < arr.Length; i++)
     {
         int minPos = i;
         for (int j = i + 1; j < arr.Length; j++)
         {
             minPos = comparator.Compare(arr[j], arr[minPos]) < 0
                 ? j
                 : minPos;
         }
         Swap(arr, i, minPos);
     }
 }
예제 #25
0
        /// <summary>
        /// Returns the probability that the records v1 and v2 represent
        /// the same entity, based on high and low probability settings, etc.
        /// </summary>
        /// <param name="v1"></param>
        /// <param name="v2"></param>
        /// <returns></returns>
        public double Compare(String v1, String v2)
        {
            //FIXME: it should be possible here to say that, actually, we
            // didn't learn anything from comparing the two values, so that
            // probability is set to 0.5.

            double sim = Comparator.Compare(v1, v2);

            if (sim >= 0.5)
            {
                return(((HighProbability - 0.5) * (sim * sim)) + 0.5);
            }
            return(LowProbability);
        }
예제 #26
0
    private static void Compare(IList <string> args)
    {
        if (args.Count < 4)
        {
            Console.WriteLine("Use -compare <goldStandard> <fileToCompare> <output> [options]");
            Console.WriteLine("-help for more information");
        }
        else
        {
            var goldStandardFile = args[1];
            var fileToCompare    = args[2];
            var outputFile       = args[3];

            var errorMessage = FilesExists(goldStandardFile, fileToCompare);

            if (errorMessage.Any())
            {
                foreach (var error in errorMessage)
                {
                    Console.WriteLine(error);
                }
            }
            else
            {
                var goldStandardFileName = Path.GetFileName(goldStandardFile);
                var fileToCompareName    = Path.GetFileName(fileToCompare);
                var outputFileName       = Path.GetFileName(outputFile);

                string title = outputFileName, rowTitle = goldStandardFileName, columnTitle = fileToCompareName, specificCellsFile = "", translationFile = "";
                var    outputForLatex = args.Contains("-l");
                var    size           = outputForLatex ? 10 : 30;

                args.OptionPresent("t", ref title);
                args.OptionPresent("rt", ref rowTitle);
                args.OptionPresent("ct", ref columnTitle);
                args.OptionPresent("SC", ref specificCellsFile);
                args.OptionPresent("T", ref translationFile);
                args.OptionPresent("s", ref size);

                Console.WriteLine((outputForLatex ? "(latex)" : "") + "Comparing: {0}(gold standard) against {1}", goldStandardFileName, fileToCompareName);
                Console.WriteLine("output: {0}", outputFileName);
                Console.WriteLine();

                var comparator  = new Comparator(goldStandardFile, fileToCompare, outputFile);
                var translation = string.IsNullOrWhiteSpace(translationFile) ? new EmptyTranslation() : (ITranslation) new Translation(translationFile);
                comparator.SetOptions(outputForLatex, title, rowTitle, columnTitle, translation, specificCellsFile, size);
                comparator.Compare();
            }
        }
    }
예제 #27
0
        public void SimpleCompare_PopulatesUserAndDateStamp_Valid()
        {
            var id = Guid.NewGuid().ToId();

            var objA = GetSimpleModel(id);
            var objB = GetSimpleModel(id);

            var user = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");

            var result = Comparator.Compare(objA, objB, user);

            Assert.AreEqual(user.Id, result.User.Id);
            Assert.AreEqual(user.Text, result.User.Text);
            Assert.IsTrue(result.DateStamp.SuccessfulJSONDate());
        }
예제 #28
0
        public void SimpleCompare_ChangeValue1_First_To_44_Value()
        {
            var id   = Guid.NewGuid().ToId();
            var objA = GetSimpleModel(id);
            var objB = GetSimpleModel(id);

            objB.Value1 = 44;

            var user   = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");
            var result = Comparator.Compare(objA, objB, user);

            Assert.IsTrue(result.IsDirty);
            Assert.AreEqual(objB.Value1.ToString(), result.Changes.First().NewValue);
            Assert.AreEqual(VALUE_1_ORIGINAL.ToString(), result.Changes.First().OldValue);
            Assert.AreEqual(nameof(objA.Value1), result.Changes.First().Name);
            Console.WriteLine(result.Changes.First());
        }
예제 #29
0
        public void SimpleCompare_Change_Nullable_From_NullToValue()
        {
            var id   = Guid.NewGuid().ToId();
            var objA = GetSimpleModel(id);
            var objB = GetSimpleModel(id);

            objA.NullableValue = null;

            var user   = EntityHeader.Create(Guid.NewGuid().ToId(), "SOME_USER");
            var result = Comparator.Compare(objA, objB, user);

            Assert.IsTrue(result.IsDirty);
            Assert.AreEqual(ComparatorResources.EmptyValue, result.Changes.First().OldValue);
            Assert.AreEqual(NULLABLE_ORIGINAL.ToString(), result.Changes.First().NewValue);
            Assert.AreEqual(nameof(objA.NullableValue), result.Changes.First().Name);
            Console.WriteLine(result.Changes.First());
        }
예제 #30
0
    static void Main()
    {
        int           n        = int.Parse(Console.ReadLine());
        List <string> elements = new List <string>();

        for (int counter = 0; counter < n; counter++)
        {
            string element = Console.ReadLine();
            elements.Add(element);
        }

        string toCompare = Console.ReadLine();

        int result = Comparator.Compare(elements, toCompare);

        Console.WriteLine(result);
    }
예제 #31
0
 public void Test_Comparator()
 {
     Comparator<int> compar = new Comparator<int>((x, y) => x - y);
     Assert.AreEqual(-7, compar.Compare(10, 17));
 }