Skip to content

Commit

Permalink
Merge pull request #15 from turion/dev_more_properties
Browse files Browse the repository at this point in the history
more test properties
  • Loading branch information
thalesmg authored Jun 10, 2021
2 parents 4ee336a + 073ff2c commit 1b154f7
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/hallux/seq.ex
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ defmodule Hallux.Seq do
iex> rest
#HalluxSeq<[1, 2, 3, 4, 5, 6, 7, 8, 9]>
"""
@spec view_r(t(val)) :: nil | {val, t(val)} when val: value
@spec view_r(t(val)) :: nil | {t(val), val} when val: value
def view_r(%__MODULE__{t: t}) do
with {rest, %Elem{e: x}} <- FingerTree.view_r(t) do
{%__MODULE__{t: rest}, x}
Expand Down
31 changes: 31 additions & 0 deletions test/hallux/seq_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,37 @@ defmodule Hallux.SeqTest do
assert Valid.valid?(seq)
end
end

property "cons . view_l = id" do
check all(
s <- seq(),
item <- term()
) do
{item_, s_} = Seq.view_l(Seq.cons(s, item))
assert_equal(s, s_)
assert item == item_
end
end
end

property "snoc . view_r = id" do
check all(
s <- seq(),
item <- term()
) do
{s_, item_} = Seq.view_r(Seq.snoc(s, item))
assert_equal(s, s_)
assert item == item_
end
end

property "concat . to_list = to_list . ++" do
check all(
s1 <- seq(),
s2 <- seq()
) do
assert Enum.to_list(Seq.concat(s1, s2)) == Enum.to_list(s1) ++ Enum.to_list(s2)
end
end

defp assert_equal(s1 = %Seq{}, s2 = %Seq{}) do
Expand Down

0 comments on commit 1b154f7

Please sign in to comment.