in src/Proton.TestPeer/Matchers/Types/Primitives/Numbers.cs [82:135]
internal static bool AreEqual(object lhs, object rhs)
{
if (!IsNumericType(lhs) && !IsNumericType(rhs))
{
return false;
}
if (lhs is double || rhs is double)
{
return AreEqual(Convert.ToDouble(lhs), Convert.ToDouble(rhs));
}
else if (lhs is float || rhs is float)
{
return AreEqual(Convert.ToSingle(lhs), Convert.ToSingle(rhs));
}
else if (lhs is decimal || rhs is decimal)
{
return AreEqual(Convert.ToDecimal(lhs), Convert.ToDecimal(rhs));
}
else if (lhs is ulong || rhs is ulong)
{
return AreEqual(Convert.ToUInt64(lhs), Convert.ToUInt64(rhs));
}
else if (lhs is long || rhs is long)
{
return AreEqual(Convert.ToInt64(lhs), Convert.ToInt64(rhs));
}
else if (lhs is uint || rhs is uint)
{
return AreEqual(Convert.ToUInt32(lhs), Convert.ToUInt32(rhs));
}
else if (lhs is int || rhs is int)
{
return AreEqual(Convert.ToInt32(lhs), Convert.ToInt32(rhs));
}
else if (lhs is ushort || rhs is ushort)
{
return AreEqual(Convert.ToUInt16(lhs), Convert.ToUInt16(rhs));
}
else if (lhs is short || rhs is short)
{
return AreEqual(Convert.ToInt16(lhs), Convert.ToInt16(rhs));
}
else if (lhs is byte || rhs is byte)
{
return AreEqual(Convert.ToByte(lhs), Convert.ToByte(rhs));
}
else if (lhs is sbyte || rhs is sbyte)
{
return AreEqual(Convert.ToSByte(lhs), Convert.ToSByte(rhs));
}
return false;
}