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); }
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); }
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))); } }
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); }
public void Inequality(string left, string right) => Assert.IsFalse(JNumber.Equals(JNumber.Parse(left), JNumber.Parse(right)));