11defmodule CircularBufferTest do
22 use ExUnit.Case , async: false
33 use PropCheck
4+ doctest CircularBuffer
45
56 alias CircularBuffer , as: CB
67
@@ -39,6 +40,7 @@ defmodule CircularBufferTest do
3940
4041 property "member?/1" do
4142 items = such_that ( { a , b } <- { pos_integer ( ) , pos_integer ( ) } , when: a != b )
43+
4244 forall { a , b } <- items do
4345 cb = CB . new ( 1 ) |> CB . insert ( a )
4446 ! Enum . member? ( cb , b ) && Enum . member? ( cb , a )
@@ -47,7 +49,7 @@ defmodule CircularBufferTest do
4749
4850 property "implements Enumerable" do
4951 forall is <- list ( integer ( ) ) do
50- buffer = Enum . reduce ( is , CB . new ( length ( is ) + 1 ) , fn i , cb -> CB . insert ( cb , i ) end )
52+ buffer = Enum . reduce ( is , CB . new ( length ( is ) + 1 ) , fn i , cb -> CB . insert ( cb , i ) end )
5153
5254 Enum . reduce ( buffer , 0 , fn acc , i -> acc + i end ) == Enum . sum ( is )
5355 end
@@ -103,15 +105,15 @@ defmodule CircularBufferTest do
103105 oldest =
104106 iis
105107 |> Enum . reverse ( )
106- |> Enum . drop ( size - 1 )
108+ |> Enum . drop ( size - 1 )
107109 |> Enum . at ( 0 )
108110
109111 CB . oldest ( buffer ) == oldest
110112 end
111113 end
112114
113115 test "can be inspected" do
114- str = inspect ( Enum . into ( [ 1 , 2 , 3 , 4 ] , CB . new ( 4 ) ) )
116+ str = inspect ( Enum . into ( [ 1 , 2 , 3 , 4 ] , CB . new ( 4 ) ) )
115117 assert str == "#CircularBuffer<[1, 2, 3, 4]>"
116118 end
117119
@@ -148,16 +150,17 @@ defmodule CircularBufferTest do
148150
149151 def size_and_list do
150152 let size <- pos_integer ( ) do
151- let is <- ints ( size * 2 , [ ] ) do
153+ let is <- ints ( size * 2 + 1 , [ ] ) do
152154 { size , is }
153155 end
154156 end
155157 end
156158
157159 defp ints ( 0 , acc ) , do: acc
160+
158161 defp ints ( size , acc ) do
159162 let i <- integer ( ) do
160- ints ( size - 1 , [ i | acc ] )
163+ ints ( size - 1 , [ i | acc ] )
161164 end
162165 end
163166end
0 commit comments