diff --git a/lib/immutable/stream.rb b/lib/immutable/stream.rb index cb96836..30f61cd 100644 --- a/lib/immutable/stream.rb +++ b/lib/immutable/stream.rb @@ -193,6 +193,8 @@ def inspect "Stream[" + inspect_i + "]" end + alias to_s inspect + def inspect_i(s = nil) if eager? if empty? diff --git a/test/immutable/test_stream.rb b/test/immutable/test_stream.rb index f8ed801..7eb48de 100644 --- a/test/immutable/test_stream.rb +++ b/test/immutable/test_stream.rb @@ -196,6 +196,43 @@ def test_inspect s.inspect) end + def test_to_s + s = Stream[] + assert_equal('Stream[...]', s.to_s) + assert_equal(nil, s[0]) + assert_equal('Stream[]', s.to_s) + s = Stream[1] + assert_equal('Stream[...]', s.to_s) + assert_equal(1, s[0]) + assert_equal('Stream[1, ...]', s.to_s) + assert_equal(nil, s[1]) + assert_equal('Stream[1]', s.to_s) + s = Stream["foo"] + assert_equal("foo", s[0]) + assert_equal('Stream["foo", ...]', s.to_s) + assert_equal(nil, s[1]) + assert_equal('Stream["foo"]', s.to_s) + s = Stream[1, 2, 3] + assert_equal('Stream[...]', s.to_s) + assert_equal(1, s[0]) + assert_equal('Stream[1, ...]', s.to_s) + assert_equal(2, s[1]) + assert_equal('Stream[1, 2, ...]', s.to_s) + assert_equal(3, s[2]) + assert_equal('Stream[1, 2, 3, ...]', s.to_s) + assert_equal(nil, s[3]) + assert_equal('Stream[1, 2, 3]', s.to_s) + s = Stream[1, 2, 3] + assert_equal(2, s[1]) + assert_equal('Stream[?, 2, ...]', s.to_s) + s = Stream[Stream[1, 2], Stream[3, 4]] + assert_equal(Stream[1, 2], s[0]) + assert_equal(Stream[3, 4], s[1]) + assert_equal(nil, s[2]) + assert_equal('Stream[Stream[1, 2], Stream[3, 4]]', + s.to_s) + end + def test_length assert_equal(0, Stream[].length) assert_equal(1, Stream[1].length)