Skip to content

Commit 0565e03

Browse files
committed
fix: discrete interval length
Closes #53
1 parent f5fd760 commit 0565e03

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

CHANGES.rst

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ Changelog
44
Here you can see the full list of changes between each intervals release.
55

66

7+
0.9.1 (2020-12-31)
8+
^^^^^^^^^^^^^^^^^^
9+
10+
- Fixed discrete interval length (#53)
11+
12+
713
0.9.0 (2020-07-16)
814
^^^^^^^^^^^^^^^^^^
915

intervals/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@
3232
)
3333

3434

35-
__version__ = '0.9.0'
35+
__version__ = '0.9.1'

intervals/interval.py

+5
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,11 @@ def discrete(self):
456456

457457
@property
458458
def length(self):
459+
if self.discrete:
460+
if not self:
461+
return 0
462+
if not self.lower_inc or not self.upper_inc:
463+
return canonicalize(self, lower_inc=True, upper_inc=True).length
459464
return abs(self.upper - self.lower)
460465

461466
@property

tests/interval/test_properties.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@
1515

1616
class TestIntervalProperties(object):
1717
@mark.parametrize(
18-
('number_range', 'length'),
18+
('interval', 'length'),
1919
(
20-
([1, 4], 3),
21-
([-1, 1], 2),
22-
((-inf, inf), inf),
23-
((1, inf), inf),
20+
(IntInterval([1, 4]), 3),
21+
(IntInterval([-1, 1]), 2),
22+
(IntInterval([-inf, inf]), inf),
23+
(IntInterval([1, inf]), inf),
24+
(IntInterval.from_string('(0, 3)'), 1),
25+
(IntInterval.from_string('[0, 3)'), 2),
26+
(IntInterval.from_string('(0, 2)'), 0),
27+
(IntInterval.from_string('(0, 1)'), 0)
2428
)
2529
)
26-
def test_length(self, number_range, length):
27-
assert IntInterval(number_range).length == length
30+
def test_length(self, interval, length):
31+
assert interval.length == length
2832

2933
@mark.parametrize(
3034
('number_range', 'radius'),

0 commit comments

Comments
 (0)