Skip to content

Commit 7ae0711

Browse files
authored
Merge pull request #54 from PickwickSoft/feature/add-convert-to-numeric-stream-operation
✨ Add convert to numeric stream operation
2 parents 26a08a4 + d85a443 commit 7ae0711

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

pystreamapi/_streams/__base_stream.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,10 @@ def __map_to_str(self):
251251
"""Converts the stream to strings."""
252252
self._map(str)
253253

254+
def numeric(self) -> NumericBaseStream:
255+
"""Returns a numeric stream. If the stream is already numeric, it is returned."""
256+
return self._to_numeric_stream()
257+
254258
@_operation
255259
def parallel(self) -> 'ParallelStream[K]':
256260
"""Returns a parallel stream. If the stream is already parallel, it is returned."""

tests/test_stream_implementation.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ def test_map_to_str(self):
5959
result = self.stream([1, 2, 3, 9]).map_to_str().to_list()
6060
self.assertListEqual(result, ["1", "2", "3", "9"])
6161

62+
def test_convert_to_numeric_stream(self):
63+
result = self.stream([1, 2, 3, 9]).numeric()
64+
self.assertTrue(isinstance(result, NumericBaseStream))
65+
66+
def test_convert_to_numeric_stream_is_already_numeric(self):
67+
result = self.stream([1.0, 2.0, 3.0, 9.0]).numeric()
68+
self.assertTrue(isinstance(result, NumericBaseStream))
69+
6270
def test_flat_map(self):
6371
result = self.stream([1, 2, 3, 9]).flat_map(lambda x: self.stream([x, x])).to_list()
6472
self.assertListEqual(result, [1, 1, 2, 2, 3, 3, 9, 9])

0 commit comments

Comments
 (0)