diff --git a/poincare/src/integer.cpp b/poincare/src/integer.cpp index 31c567049..033b8be88 100644 --- a/poincare/src/integer.cpp +++ b/poincare/src/integer.cpp @@ -114,7 +114,7 @@ bool Integer::operator<(const Integer &other) const { native_uint_t digit = m_digits[m_numberOfDigits-i-1]; native_uint_t otherDigit = other.m_digits[m_numberOfDigits-i-1]; if (digit != otherDigit) { - return (digit < otherDigit); + return (digit < otherDigit) != m_negative; } } return false; diff --git a/poincare/test/integer.cpp b/poincare/test/integer.cpp index 9446b6a2a..9bb8a6e3f 100644 --- a/poincare/test/integer.cpp +++ b/poincare/test/integer.cpp @@ -15,6 +15,9 @@ QUIZ_CASE(poincare_integer) { QUIZ_CASE(poincare_integer_compare) { assert(Integer(123) < Integer(456)); assert(!(Integer(123) < Integer(123))); + assert(!(Integer(-123) < Integer(-123))); + assert(Integer(-100) < Integer(2)); + assert(Integer(-200) < Integer(-100)); assert(Integer(123) < Integer("123456789123456789")); assert(Integer("123456789123456788") < Integer("123456789123456789")); assert(!(Integer("123456789123456789") < Integer("123456789123456788")));