Skip to content

Commit 9acb5c1

Browse files
Fix mapper enumerable count (#16)
1 parent 74a4786 commit 9acb5c1

3 files changed

Lines changed: 9 additions & 1 deletion

File tree

lib/table/mapper.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ defmodule Table.Mapper do
2525

2626
defimpl Enumerable do
2727
def count(mapper) do
28-
Enumerable.count(mapper.enumerable)
28+
with {:error, _} <- Enumerable.count(mapper.enumerable) do
29+
{:error, __MODULE__}
30+
end
2931
end
3032

3133
# The mapping is not necessarily reversible, so we fall

test/mapper_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ defmodule Table.MapperTest do
66
test "count" do
77
enumerable = 1..3 |> Mapper.map(fn x -> x * x end)
88
assert Enum.count(enumerable) == 3
9+
10+
enumerable = [1, 2, 3] |> Mapper.map(fn x -> x * x end)
11+
assert Enum.count(enumerable) == 3
912
end
1013

1114
test "reduce" do

test/zipper_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ defmodule Table.ZipperTest do
66
test "count" do
77
enumerable = Zipper.zip([1..4, 1..3, 1..5])
88
assert Enum.count(enumerable) == 3
9+
10+
enumerable = Zipper.zip([1..4, [1, 2, 3], 1..5])
11+
assert Enum.count(enumerable) == 3
912
end
1013

1114
test "reduce" do

0 commit comments

Comments
 (0)