Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "streams.py"
version = "0.3.2"
version = "0.3.3"
authors = ["Stefan Garlonta <stefan@pickwicksoft.org>"]
description = "A stream library for Python inspired by Java Stream API"
keywords = ["streams", "parallel", "data"]
Expand Down
2 changes: 1 addition & 1 deletion pystreamapi/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from pystreamapi.__stream import Stream
from pystreamapi._streams.error.__levels import ErrorLevel

__version__ = "0.3.2"
__version__ = "0.3.3"
__all__ = ["Stream", "ErrorLevel"]
12 changes: 12 additions & 0 deletions pystreamapi/_streams/__base_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,18 @@ def __map_to_int(self):
"""Converts the stream to integers."""
self._map(int)

def map_to_float(self) -> NumericBaseStream:
"""
Returns a stream consisting of the results of converting the elements of this stream to
floats.
"""
self._queue.append(Process(self.__map_to_float))
return self._to_numeric_stream()

def __map_to_float(self):
"""Converts the stream to floats."""
self._map(float)

@_operation
def map_to_str(self) -> 'BaseStream[K]':
"""
Expand Down
17 changes: 17 additions & 0 deletions tests/test_stream_implementation.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from pystreamapi._streams.__base_stream import BaseStream
from pystreamapi._streams.__parallel_stream import ParallelStream
from pystreamapi._streams.__sequential_stream import SequentialStream
from pystreamapi._streams.numeric.__numeric_base_stream import NumericBaseStream
from pystreamapi._streams.numeric.__parallel_numeric_stream import ParallelNumericStream
from pystreamapi._streams.numeric.__sequential_numeric_stream import SequentialNumericStream
from pystreamapi.__optional import Optional
Expand Down Expand Up @@ -38,6 +39,22 @@ def test_map_to_int_empty(self):
result = self.stream([]).map_to_int().to_list()
self.assertListEqual(result, [])

def test_map_to_int_returns_numeric_stream(self):
result = self.stream(["1", "2", "3", "9"]).map_to_int()
self.assertTrue(isinstance(result, NumericBaseStream))

def test_map_to_float(self):
result = self.stream(["1", "2", "3", "9"]).map_to_float().to_list()
self.assertListEqual(result, [1.0, 2.0, 3.0, 9.0])

def test_map_to_float_empty(self):
result = self.stream([]).map_to_float().to_list()
self.assertListEqual(result, [])

def test_map_to_float_returns_numeric_stream(self):
result = self.stream(["1", "2", "3", "9"]).map_to_float()
self.assertTrue(isinstance(result, NumericBaseStream))

def test_map_to_str(self):
result = self.stream([1, 2, 3, 9]).map_to_str().to_list()
self.assertListEqual(result, ["1", "2", "3", "9"])
Expand Down