[poincare] relative integer comparison

This commit is contained in:
Romain Goyet
2015-09-21 14:56:51 +02:00
parent 4fb2236ab5
commit 7408bcc483
2 changed files with 4 additions and 1 deletions

View File

@@ -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;

View File

@@ -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")));