diff --git a/builtin/tests/builtin.py b/builtin/tests/builtin.py index a8deedda..07f1704a 100644 --- a/builtin/tests/builtin.py +++ b/builtin/tests/builtin.py @@ -6,8 +6,19 @@ doc="abs" assert abs(0) == 0 +assert abs(-0) == 0 +assert abs(0.0) == 0.0 +assert abs(-0.0) == 0.0 assert abs(10) == 10 assert abs(-10) == 10 +assert abs(12.3) == 12.3 +assert abs(-12.3) == 12.3 +assert abs(1 << 63) == 1 << 63 +assert abs(-1 << 63) == 1 << 63 +assert abs(-(1 << 63)) == 1 << 63 +assert abs(1 << 66) == 1 << 66 +assert abs(-1 << 66) == 1 << 66 +assert abs(-(1 << 66)) == 1 << 66 doc="all" assert all((0,0,0)) == False diff --git a/py/int.go b/py/int.go index c183991d..d3c84ab8 100644 --- a/py/int.go +++ b/py/int.go @@ -254,8 +254,7 @@ func (a Int) M__pos__() (Object, error) { func (a Int) M__abs__() (Object, error) { if a == IntMin { - abig, _ := ConvertToBigInt(a) - return abig.M__abs__() + return a.M__neg__() } if a < 0 { return -a, nil