Exemple #1
0
        public static bool Equals(JValue left, JValue right)
        {
            var leftType  = left.typeCode;
            var rightType = right.typeCode;

            if (leftType == rightType)
            {
                switch (leftType)
                {
                case TypeCode.Null:
                    return(true);

                case TypeCode.Boolean:
                    return(left.ToBooleanCore() == right.ToBooleanCore());

                case TypeCode.Number:
                    return(JNumber.Equals(left.ToNumberCore(JNumber.NaN), right.ToNumberCore(JNumber.NaN)));

                case TypeCode.String:
                    return(EqualsString(left, right));

                case TypeCode.Array:
                    return(SequenceEqual <JValue, ArrayEnumerator>(left.GetArrayItems(), right.GetArrayItems(), Equals));

                case TypeCode.Object:
                    return(SequenceEqual <KeyValuePair, ObjectKeyValueEnumerator>(left.GetObjectKeyValues(), right.GetObjectKeyValues(), EqualsMember));
                }
            }

            return(false);
        }
Exemple #2
0
        public static bool Equals(JValue left, JValue right)
        {
            var leftType  = left.Type;
            var rightType = right.Type;

            if (leftType == rightType)
            {
                switch (leftType)
                {
                case TypeCode.Null: return(true);

                case TypeCode.Boolean: return(left.ToBooleanCore() == right.ToBooleanCore());

                case TypeCode.Number: return(JNumber.Equals(left.ToNumberCore(JNumber.NaN), right.ToNumberCore(JNumber.NaN)));

                case TypeCode.String: return(EqualsString(left, right));

                case TypeCode.Array: return(SequenceEqual(left.Array().GetEnumerator(), right.Array().GetEnumerator(), Equals));

                case TypeCode.Object: return(SequenceEqual(left.Object().GetEnumerator(), right.Object().GetEnumerator(), EqualsMember));
                }
            }

            return(false);
        }
Exemple #3
0
 public void Equality(string left, string right)
 {
     Assert.IsTrue(JNumber.Equals(JNumber.Parse(left), JNumber.Parse(right)));
     if (left.StartsWith("-", StringComparison.Ordinal) == false)
     {
         left  = FormattableString.Invariant($"-{left}");
         right = FormattableString.Invariant($"-{right}");
         Assert.IsTrue(JNumber.Equals(JNumber.Parse(left), JNumber.Parse(right)));
     }
 }
Exemple #4
0
 public void TwoNumber_Are_Equal_But_NotEquivalent(string left, string right)
 {
     Assert.IsTrue(
         JNumber.Equals(JNumber.Parse(left), JNumber.Parse(right)) &&
         JNumber.Compare(JNumber.Parse(left), JNumber.Parse(right)) != 0);
 }
Exemple #5
0
 public void Inequality(string left, string right)
 => Assert.IsFalse(JNumber.Equals(JNumber.Parse(left), JNumber.Parse(right)));