From ace70b0b951b934190e4628c1ef6dd69f4f5fae2 Mon Sep 17 00:00:00 2001 From: Drew O'Meara Date: Thu, 3 Feb 2022 02:58:37 -0600 Subject: [PATCH 1/3] improved Int.abs() and test coverage --- builtin/tests/builtin.py | 12 ++++++++++++ py/int.go | 3 +-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/builtin/tests/builtin.py b/builtin/tests/builtin.py index a8deedda..f0f08378 100644 --- a/builtin/tests/builtin.py +++ b/builtin/tests/builtin.py @@ -288,6 +288,18 @@ def gen2(): doc="open" assert open(__file__) is not None +doc="abs" +assert abs(123) == 123 +assert abs(-123) == 123 +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="pow" assert pow(2, 10) == 1024 assert pow(2, 10, 17) == 4 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 From 9a7aeca39f7eed0a8f6e84e38ff2af48e91b8458 Mon Sep 17 00:00:00 2001 From: Drew O'Meara Date: Thu, 3 Feb 2022 03:13:56 -0600 Subject: [PATCH 2/3] consolidated abs tests --- builtin/tests/builtin.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/builtin/tests/builtin.py b/builtin/tests/builtin.py index f0f08378..b1059614 100644 --- a/builtin/tests/builtin.py +++ b/builtin/tests/builtin.py @@ -8,6 +8,14 @@ assert abs(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 @@ -288,18 +296,6 @@ def gen2(): doc="open" assert open(__file__) is not None -doc="abs" -assert abs(123) == 123 -assert abs(-123) == 123 -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="pow" assert pow(2, 10) == 1024 assert pow(2, 10, 17) == 4 From 3e7147a5a81540b64480f3385a329649e4d4ae85 Mon Sep 17 00:00:00 2001 From: Drew O'Meara Date: Thu, 3 Feb 2022 03:15:37 -0600 Subject: [PATCH 3/3] added abs tests --- builtin/tests/builtin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/builtin/tests/builtin.py b/builtin/tests/builtin.py index b1059614..07f1704a 100644 --- a/builtin/tests/builtin.py +++ b/builtin/tests/builtin.py @@ -6,6 +6,9 @@ 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