Exemple #1
0
        public void SameValueZero()
        {
            // undefined
            Assert.AreEqual(true, TypeComparer.SameValueZero(Undefined.Value, Undefined.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(Undefined.Value, Null.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(Undefined.Value, 0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(null, null));
            Assert.AreEqual(true, TypeComparer.SameValueZero(null, Undefined.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(null, Null.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(null, 0));

            // null
            Assert.AreEqual(true, TypeComparer.SameValueZero(Null.Value, Null.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(Null.Value, Undefined.Value));
            Assert.AreEqual(false, TypeComparer.SameValueZero(Null.Value, 0));

            // number
            Assert.AreEqual(true, TypeComparer.SameValueZero(+0.0, +0.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(-0.0, -0.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(+0.0, -0.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(-0.0, +0.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(1, 1));
            Assert.AreEqual(false, TypeComparer.SameValueZero(0, 1));
            Assert.AreEqual(true, TypeComparer.SameValueZero(5, 5.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(5.0, 5));
            Assert.AreEqual(true, TypeComparer.SameValueZero(5.0, 5.0));
            Assert.AreEqual(false, TypeComparer.SameValueZero(5.0, 6.0));
            Assert.AreEqual(true, TypeComparer.SameValueZero(double.NaN, double.NaN));
            Assert.AreEqual(false, TypeComparer.SameValueZero(double.NaN, 5));
            Assert.AreEqual(false, TypeComparer.SameValueZero(double.NaN, 5.0));
            Assert.AreEqual(false, TypeComparer.SameValueZero(0, "0"));

            // string
            Assert.AreEqual(true, TypeComparer.SameValueZero("", ""));
            Assert.AreEqual(true, TypeComparer.SameValueZero("a", "a"));
            Assert.AreEqual(false, TypeComparer.SameValueZero("a", "b"));
            Assert.AreEqual(false, TypeComparer.SameValueZero("0", 0));

            // bool
            Assert.AreEqual(true, TypeComparer.SameValueZero(false, false));
            Assert.AreEqual(true, TypeComparer.SameValueZero(true, true));
            Assert.AreEqual(false, TypeComparer.SameValueZero(true, false));
            Assert.AreEqual(false, TypeComparer.SameValueZero(false, 0));

            // object
            var engine  = new ScriptEngine();
            var temp1   = engine.Object.Construct();
            var temp2   = engine.Object.Construct();
            var number1 = engine.Number.Construct(5.0);

            Assert.AreEqual(true, TypeComparer.SameValueZero(temp1, temp1));
            Assert.AreEqual(false, TypeComparer.SameValueZero(temp1, temp2));
            Assert.AreEqual(true, TypeComparer.SameValueZero(number1, number1));
            Assert.AreEqual(false, TypeComparer.SameValueZero(number1, 5.0));
        }
Exemple #2
0
        /// <summary>
        /// Determines whether an array includes a certain value among its entries.
        /// </summary>
        /// <param name="searchElement"> The value to search for. </param>
        /// <param name="fromIndex"> The array index to start searching. </param>
        /// <returns> <c>true</c> given search element in the array, or <c>false</c> if the element
        /// wasn't found. </returns>
        public bool Includes(object searchElement, int fromIndex)
        {
            // If fromIndex is less than zero, it is an offset from the end of the array.
            if (fromIndex < 0)
            {
                fromIndex += Length;
            }

            for (int i = Math.Max(fromIndex, 0); i < Length; i++)
            {
                // Get the value of the array element.
                object elementValue = this[i];

                // Compare the given search element with the array element.
                if (TypeComparer.SameValueZero(searchElement, elementValue) == true)
                {
                    return(true);
                }
            }

            // The search element wasn't found.
            return(false);
        }
Exemple #3
0
 public new bool Equals(object x, object y)
 {
     return(TypeComparer.SameValueZero(x, y));
 }