hamster 1.0.1.pre.rc.1 → 1.0.1.pre.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hamster/groupable.rb +12 -0
  3. data/lib/hamster/hash.rb +32 -12
  4. data/lib/hamster/list.rb +68 -22
  5. data/lib/hamster/queue.rb +5 -6
  6. data/lib/hamster/set.rb +50 -14
  7. data/lib/hamster/stack.rb +2 -0
  8. data/lib/hamster/trie.rb +34 -14
  9. data/lib/hamster/tuple.rb +9 -24
  10. data/lib/hamster/vector.rb +29 -7
  11. data/lib/hamster/version.rb +1 -1
  12. data/spec/hamster/core_ext/array_spec.rb +4 -10
  13. data/spec/hamster/core_ext/enumerable_spec.rb +1 -0
  14. data/spec/hamster/experimental/mutable_set/add_qm_spec.rb +14 -22
  15. data/spec/hamster/experimental/mutable_set/add_spec.rb +20 -34
  16. data/spec/hamster/experimental/mutable_set/delete_qm_spec.rb +15 -24
  17. data/spec/hamster/experimental/mutable_set/delete_spec.rb +15 -25
  18. data/spec/hamster/experimental/mutable_stack/pop_spec.rb +21 -27
  19. data/spec/hamster/experimental/mutable_stack/push_spec.rb +11 -31
  20. data/spec/hamster/hash/all_spec.rb +21 -34
  21. data/spec/hamster/hash/any_spec.rb +0 -15
  22. data/spec/hamster/hash/clear_spec.rb +1 -8
  23. data/spec/hamster/hash/construction_spec.rb +3 -11
  24. data/spec/hamster/hash/copying_spec.rb +1 -8
  25. data/spec/hamster/hash/delete_spec.rb +1 -10
  26. data/spec/hamster/hash/each_spec.rb +1 -12
  27. data/spec/hamster/hash/empty_spec.rb +8 -8
  28. data/spec/hamster/hash/eql_spec.rb +30 -22
  29. data/spec/hamster/hash/except_spec.rb +1 -10
  30. data/spec/hamster/hash/fetch_spec.rb +1 -24
  31. data/spec/hamster/hash/filter_spec.rb +1 -16
  32. data/spec/hamster/hash/find_spec.rb +1 -14
  33. data/spec/hamster/hash/has_key_spec.rb +1 -10
  34. data/spec/hamster/hash/hash_spec.rb +1 -16
  35. data/spec/hamster/hash/immutable_spec.rb +0 -3
  36. data/spec/hamster/hash/inspect_spec.rb +1 -9
  37. data/spec/hamster/hash/keys_spec.rb +4 -5
  38. data/spec/hamster/hash/map_spec.rb +1 -16
  39. data/spec/hamster/hash/merge_spec.rb +5 -11
  40. data/spec/hamster/hash/new_spec.rb +21 -0
  41. data/spec/hamster/hash/put_spec.rb +13 -11
  42. data/spec/hamster/hash/reduce_spec.rb +7 -15
  43. data/spec/hamster/hash/remove_spec.rb +1 -16
  44. data/spec/hamster/hash/uniq_spec.rb +1 -8
  45. data/spec/hamster/hash/values_spec.rb +1 -6
  46. data/spec/hamster/immutable/copying_spec.rb +1 -8
  47. data/spec/hamster/immutable/immutable_spec.rb +1 -14
  48. data/spec/hamster/immutable/memoize_spec.rb +0 -1
  49. data/spec/hamster/list/add_spec.rb +1 -6
  50. data/spec/hamster/list/all_spec.rb +1 -28
  51. data/spec/hamster/list/any_spec.rb +1 -20
  52. data/spec/hamster/list/append_spec.rb +1 -11
  53. data/spec/hamster/list/at_spec.rb +1 -13
  54. data/spec/hamster/list/break_spec.rb +1 -13
  55. data/spec/hamster/list/cadr_spec.rb +1 -9
  56. data/spec/hamster/list/chunk_spec.rb +1 -9
  57. data/spec/hamster/list/clear_spec.rb +1 -9
  58. data/spec/hamster/list/combinations_spec.rb +1 -11
  59. data/spec/hamster/list/compact_spec.rb +1 -9
  60. data/spec/hamster/list/cons_spec.rb +1 -10
  61. data/spec/hamster/list/construction_spec.rb +1 -30
  62. data/spec/hamster/list/copying_spec.rb +1 -9
  63. data/spec/hamster/list/count_spec.rb +1 -15
  64. data/spec/hamster/list/cycle_spec.rb +1 -10
  65. data/spec/hamster/list/drop_spec.rb +1 -9
  66. data/spec/hamster/list/drop_while_spec.rb +1 -13
  67. data/spec/hamster/list/each_slice_spec.rb +1 -17
  68. data/spec/hamster/list/each_spec.rb +1 -17
  69. data/spec/hamster/list/each_with_index_spec.rb +1 -10
  70. data/spec/hamster/list/elem_index_spec.rb +1 -13
  71. data/spec/hamster/list/elem_indices_spec.rb +1 -11
  72. data/spec/hamster/list/empty_spec.rb +1 -13
  73. data/spec/hamster/list/eql_spec.rb +52 -62
  74. data/spec/hamster/list/find_index_spec.rb +1 -13
  75. data/spec/hamster/list/find_indices_spec.rb +1 -11
  76. data/spec/hamster/list/find_spec.rb +1 -17
  77. data/spec/hamster/list/flatten_spec.rb +1 -9
  78. data/spec/hamster/list/grep_spec.rb +1 -16
  79. data/spec/hamster/list/group_by_spec.rb +1 -20
  80. data/spec/hamster/list/head_spec.rb +1 -11
  81. data/spec/hamster/list/include_spec.rb +1 -13
  82. data/spec/hamster/list/init_spec.rb +1 -8
  83. data/spec/hamster/list/inits_spec.rb +1 -9
  84. data/spec/hamster/list/inspect_spec.rb +1 -11
  85. data/spec/hamster/list/intersperse_spec.rb +1 -9
  86. data/spec/hamster/list/join_spec.rb +1 -18
  87. data/spec/hamster/list/last_spec.rb +1 -11
  88. data/spec/hamster/list/map_spec.rb +1 -15
  89. data/spec/hamster/list/maximum_spec.rb +1 -20
  90. data/spec/hamster/list/merge_by_spec.rb +1 -19
  91. data/spec/hamster/list/merge_spec.rb +1 -20
  92. data/spec/hamster/list/minimum_spec.rb +1 -20
  93. data/spec/hamster/list/none_spec.rb +1 -18
  94. data/spec/hamster/list/one_spec.rb +1 -16
  95. data/spec/hamster/list/partition_spec.rb +1 -13
  96. data/spec/hamster/list/product_spec.rb +1 -11
  97. data/spec/hamster/list/reduce_spec.rb +0 -1
  98. data/spec/hamster/list/remove_spec.rb +1 -15
  99. data/spec/hamster/list/reverse_spec.rb +1 -11
  100. data/spec/hamster/list/size_spec.rb +1 -13
  101. data/spec/hamster/list/slice_spec.rb +1 -11
  102. data/spec/hamster/list/sorting_spec.rb +1 -14
  103. data/spec/hamster/list/span_spec.rb +1 -12
  104. data/spec/hamster/list/split_at_spec.rb +1 -9
  105. data/spec/hamster/list/sum_spec.rb +1 -11
  106. data/spec/hamster/list/tail_spec.rb +1 -11
  107. data/spec/hamster/list/tails_spec.rb +1 -9
  108. data/spec/hamster/list/take_spec.rb +1 -9
  109. data/spec/hamster/list/take_while_spec.rb +0 -1
  110. data/spec/hamster/list/to_a_spec.rb +1 -13
  111. data/spec/hamster/list/to_ary_spec.rb +0 -1
  112. data/spec/hamster/list/to_list_spec.rb +1 -9
  113. data/spec/hamster/list/to_set_spec.rb +2 -8
  114. data/spec/hamster/list/union_spec.rb +1 -11
  115. data/spec/hamster/list/uniq_spec.rb +1 -11
  116. data/spec/hamster/queue/clear_spec.rb +1 -9
  117. data/spec/hamster/queue/construction_spec.rb +1 -10
  118. data/spec/hamster/queue/dequeue_spec.rb +1 -11
  119. data/spec/hamster/queue/empty_spec.rb +1 -13
  120. data/spec/hamster/queue/enqueue_spec.rb +1 -11
  121. data/spec/hamster/queue/head_spec.rb +1 -11
  122. data/spec/hamster/queue/inspect_spec.rb +1 -9
  123. data/spec/hamster/queue/size_spec.rb +1 -11
  124. data/spec/hamster/queue/to_a_spec.rb +1 -11
  125. data/spec/hamster/queue/to_list_spec.rb +1 -11
  126. data/spec/hamster/set/add_spec.rb +1 -12
  127. data/spec/hamster/set/all_spec.rb +1 -18
  128. data/spec/hamster/set/any_spec.rb +1 -17
  129. data/spec/hamster/set/clear_spec.rb +9 -8
  130. data/spec/hamster/set/compact_spec.rb +1 -9
  131. data/spec/hamster/set/construction_spec.rb +1 -9
  132. data/spec/hamster/set/copying_spec.rb +1 -8
  133. data/spec/hamster/set/count_spec.rb +1 -13
  134. data/spec/hamster/set/delete_spec.rb +1 -10
  135. data/spec/hamster/set/difference_spec.rb +1 -11
  136. data/spec/hamster/set/empty_spec.rb +1 -11
  137. data/spec/hamster/set/exclusion_spec.rb +1 -11
  138. data/spec/hamster/set/filter_spec.rb +10 -17
  139. data/spec/hamster/set/find_spec.rb +1 -14
  140. data/spec/hamster/set/flatten_spec.rb +8 -10
  141. data/spec/hamster/set/group_by_spec.rb +8 -17
  142. data/spec/hamster/set/head_spec.rb +1 -12
  143. data/spec/hamster/set/immutable_spec.rb +1 -4
  144. data/spec/hamster/set/include_spec.rb +1 -9
  145. data/spec/hamster/set/inspect_spec.rb +1 -9
  146. data/spec/hamster/set/intersection_spec.rb +1 -11
  147. data/spec/hamster/set/join_spec.rb +1 -16
  148. data/spec/hamster/set/map_spec.rb +1 -16
  149. data/spec/hamster/set/marshal_spec.rb +1 -6
  150. data/spec/hamster/set/maximum_spec.rb +1 -18
  151. data/spec/hamster/set/minimum_spec.rb +1 -17
  152. data/spec/hamster/set/new_spec.rb +21 -0
  153. data/spec/hamster/set/none_spec.rb +1 -16
  154. data/spec/hamster/set/one_spec.rb +1 -14
  155. data/spec/hamster/set/partition_spec.rb +1 -13
  156. data/spec/hamster/set/product_spec.rb +1 -9
  157. data/spec/hamster/set/reduce_spec.rb +1 -26
  158. data/spec/hamster/set/remove_spec.rb +1 -16
  159. data/spec/hamster/set/size_spec.rb +1 -9
  160. data/spec/hamster/set/sorting_spec.rb +1 -3
  161. data/spec/hamster/set/subset_spec.rb +1 -9
  162. data/spec/hamster/set/sum_spec.rb +1 -9
  163. data/spec/hamster/set/superset_spec.rb +1 -9
  164. data/spec/hamster/set/to_a_spec.rb +1 -11
  165. data/spec/hamster/set/to_list_spec.rb +1 -11
  166. data/spec/hamster/set/to_set_spec.rb +1 -9
  167. data/spec/hamster/set/union_spec.rb +1 -11
  168. data/spec/hamster/set/uniq_spec.rb +1 -7
  169. data/spec/hamster/sorter/immutable_spec.rb +1 -4
  170. data/spec/hamster/stack/clear_spec.rb +1 -9
  171. data/spec/hamster/stack/construction_spec.rb +1 -10
  172. data/spec/hamster/stack/copying_spec.rb +1 -9
  173. data/spec/hamster/stack/empty_spec.rb +1 -9
  174. data/spec/hamster/stack/eql_spec.rb +1 -13
  175. data/spec/hamster/stack/immutable_spec.rb +1 -4
  176. data/spec/hamster/stack/inspect_spec.rb +1 -9
  177. data/spec/hamster/stack/peek_spec.rb +1 -11
  178. data/spec/hamster/stack/pop_spec.rb +1 -11
  179. data/spec/hamster/stack/push_spec.rb +1 -11
  180. data/spec/hamster/stack/size_spec.rb +1 -11
  181. data/spec/hamster/stack/to_a_spec.rb +1 -11
  182. data/spec/hamster/stack/to_list_spec.rb +1 -9
  183. data/spec/hamster/tuple/construction_spec.rb +30 -0
  184. data/spec/hamster/tuple/copying_spec.rb +1 -8
  185. data/spec/hamster/tuple/eql_spec.rb +57 -40
  186. data/spec/hamster/tuple/first_spec.rb +1 -6
  187. data/spec/hamster/tuple/immutable_spec.rb +1 -4
  188. data/spec/hamster/tuple/inspect_spec.rb +1 -6
  189. data/spec/hamster/tuple/last_spec.rb +1 -6
  190. data/spec/hamster/tuple/to_a_spec.rb +1 -9
  191. data/spec/hamster/tuple/to_ary_spec.rb +0 -1
  192. data/spec/hamster/undefined/erase_spec.rb +1 -12
  193. data/spec/hamster/vector/add_spec.rb +8 -0
  194. data/spec/hamster/vector/clear_spec.rb +1 -8
  195. data/spec/hamster/vector/copying_spec.rb +1 -8
  196. data/spec/hamster/vector/each_spec.rb +1 -11
  197. data/spec/hamster/vector/each_with_index_spec.rb +1 -9
  198. data/spec/hamster/vector/empty_spec.rb +7 -9
  199. data/spec/hamster/vector/eql_spec.rb +1 -12
  200. data/spec/hamster/vector/filter_spec.rb +8 -12
  201. data/spec/hamster/vector/first_spec.rb +1 -11
  202. data/spec/hamster/vector/get_spec.rb +1 -23
  203. data/spec/hamster/vector/include_spec.rb +1 -10
  204. data/spec/hamster/vector/map_spec.rb +8 -14
  205. data/spec/hamster/vector/new_spec.rb +48 -0
  206. data/spec/hamster/vector/reduce_spec.rb +1 -26
  207. data/spec/hamster/vector/set_spec.rb +8 -0
  208. data/spec/spec_helper.rb +0 -5
  209. metadata +35 -68
@@ -1,9 +1,7 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe "Hamster.list#span" do
6
-
7
5
  it "is lazy" do
8
6
  -> { Hamster.stream { |item| fail }.span { true } }.should_not raise_error
9
7
  end
@@ -28,13 +26,11 @@ DESC
28
26
  ].each do |values, expected_prefix, expected_remainder|
29
27
 
30
28
  describe "given the list #{values.inspect}" do
31
-
32
29
  before do
33
30
  @original = Hamster.list(*values)
34
31
  end
35
32
 
36
33
  describe "and a predicate that returns true for values <= 2" do
37
-
38
34
  before do
39
35
  @result = @original.span { |item| item <= 2 }
40
36
  @prefix = @result.first
@@ -52,11 +48,9 @@ DESC
52
48
  it "returns the remainder as #{expected_remainder.inspect}" do
53
49
  @remainder.should == Hamster.list(*expected_remainder)
54
50
  end
55
-
56
51
  end
57
52
 
58
53
  describe "without a predicate" do
59
-
60
54
  before do
61
55
  @result = @original.span
62
56
  @prefix = @result.first
@@ -74,13 +68,8 @@ DESC
74
68
  it "returns an empty list as the remainder" do
75
69
  @remainder.should be_empty
76
70
  end
77
-
78
71
  end
79
-
80
72
  end
81
-
82
73
  end
83
-
84
74
  end
85
-
86
- end
75
+ end
@@ -1,12 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/tuple"
4
3
  require "hamster/list"
5
4
 
6
5
  describe Hamster::List do
7
-
8
6
  describe "#split_at" do
9
-
10
7
  it "is lazy" do
11
8
  -> { Hamster.stream { fail }.split_at(1) }.should_not raise_error
12
9
  end
@@ -20,7 +17,6 @@ describe Hamster::List do
20
17
  ].each do |values, expected_prefix, expected_remainder|
21
18
 
22
19
  describe "on #{values.inspect}" do
23
-
24
20
  before do
25
21
  @original = Hamster.list(*values)
26
22
  @result = @original.split_at(2)
@@ -43,11 +39,7 @@ describe Hamster::List do
43
39
  it "correctly identifies the remainder" do
44
40
  @remainder.should == Hamster.list(*expected_remainder)
45
41
  end
46
-
47
42
  end
48
-
49
43
  end
50
-
51
44
  end
52
-
53
- end
45
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  describe "#sum" do
8
-
9
6
  describe "on a really big list" do
10
-
11
7
  before do
12
8
  @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
13
9
  end
@@ -15,7 +11,6 @@ describe Hamster::List do
15
11
  it "doesn't run out of stack" do
16
12
  -> { @list.sum }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  [
@@ -25,7 +20,6 @@ describe Hamster::List do
25
20
  ].each do |values, expected|
26
21
 
27
22
  describe "on #{values.inspect}" do
28
-
29
23
  before do
30
24
  original = Hamster.list(*values)
31
25
  @result = original.sum
@@ -34,11 +28,7 @@ describe Hamster::List do
34
28
  it "returns #{expected.inspect}" do
35
29
  @result.should == expected
36
30
  end
37
-
38
31
  end
39
-
40
32
  end
41
-
42
33
  end
43
-
44
- end
34
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  describe "#tail" do
8
-
9
6
  describe "on a really big list" do
10
-
11
7
  before do
12
8
  @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
13
9
  end
@@ -15,7 +11,6 @@ describe Hamster::List do
15
11
  it "doesn't run out of stack" do
16
12
  -> { @list.filter(&:nil?).tail }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  [
@@ -25,7 +20,6 @@ describe Hamster::List do
25
20
  ].each do |values, expected|
26
21
 
27
22
  describe "on #{values.inspect}" do
28
-
29
23
  before do
30
24
  @original = Hamster.list(*values)
31
25
  @result = @original.tail
@@ -38,11 +32,7 @@ describe Hamster::List do
38
32
  it "returns #{expected.inspect}" do
39
33
  @result.should == Hamster.list(*expected)
40
34
  end
41
-
42
35
  end
43
-
44
36
  end
45
-
46
37
  end
47
-
48
- end
38
+ end
@@ -1,11 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  describe "#tails" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.tails }.should_not raise_error
11
8
  end
@@ -19,7 +16,6 @@ describe Hamster::List do
19
16
  expected = expected.map { |x| Hamster.list(*x) }
20
17
 
21
18
  describe "on #{values.inspect}" do
22
-
23
19
  before do
24
20
  @original = Hamster.list(*values)
25
21
  @result = @original.tails
@@ -32,11 +28,7 @@ describe Hamster::List do
32
28
  it "returns #{expected.inspect}" do
33
29
  @result.should == Hamster.list(*expected)
34
30
  end
35
-
36
31
  end
37
-
38
32
  end
39
-
40
33
  end
41
-
42
- end
34
+ end
@@ -1,11 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  describe "#take" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.take(1) }.should_not raise_error
11
8
  end
@@ -19,7 +16,6 @@ describe Hamster::List do
19
16
  ].each do |values, number, expected|
20
17
 
21
18
  describe "#{number} from #{values.inspect}" do
22
-
23
19
  before do
24
20
  @original = Hamster.list(*values)
25
21
  @result = @original.take(number)
@@ -32,11 +28,7 @@ describe Hamster::List do
32
28
  it "returns #{expected.inspect}" do
33
29
  @result.should == Hamster.list(*expected)
34
30
  end
35
-
36
31
  end
37
-
38
32
  end
39
-
40
33
  end
41
-
42
- end
34
+ end
@@ -1,5 +1,4 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
@@ -1,15 +1,10 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  [:to_a, :entries].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  describe "on a really big list" do
12
-
13
8
  before do
14
9
  @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
15
10
  end
@@ -17,7 +12,6 @@ describe Hamster::List do
17
12
  it "doesn't run out of stack" do
18
13
  -> { @list.to_a }.should_not raise_error
19
14
  end
20
-
21
15
  end
22
16
 
23
17
  [
@@ -27,7 +21,6 @@ describe Hamster::List do
27
21
  ].each do |values|
28
22
 
29
23
  describe "on #{values.inspect}" do
30
-
31
24
  before do
32
25
  @list = Hamster.list(*values)
33
26
  @result = @list.send(method)
@@ -42,13 +35,8 @@ describe Hamster::List do
42
35
  @result << "The End"
43
36
  @result.last.should == "The End"
44
37
  end
45
-
46
38
  end
47
-
48
39
  end
49
-
50
40
  end
51
-
52
41
  end
53
-
54
- end
42
+ end
@@ -1,5 +1,4 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
@@ -1,11 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  describe "#to_list" do
8
-
9
6
  [
10
7
  [],
11
8
  ["A"],
@@ -13,7 +10,6 @@ describe Hamster::List do
13
10
  ].each do |values|
14
11
 
15
12
  describe "on #{values.inspect}" do
16
-
17
13
  before do
18
14
  @original = Hamster.list(*values)
19
15
  @result = @original.to_list
@@ -22,11 +18,7 @@ describe Hamster::List do
22
18
  it "returns self" do
23
19
  @result.should equal(@original)
24
20
  end
25
-
26
21
  end
27
-
28
22
  end
29
-
30
23
  end
31
-
32
- end
24
+ end
@@ -1,10 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
  require "hamster/set"
5
4
 
6
5
  describe Hamster::List do
7
-
8
6
  describe "#to_set" do
9
7
 
10
8
  [
@@ -20,14 +18,10 @@ describe Hamster::List do
20
18
  @result = original.to_set
21
19
  end
22
20
 
23
- it "returns self" do
21
+ it "returns a set with the same values" do
24
22
  @result.should == Hamster.set(*values)
25
23
  end
26
-
27
24
  end
28
-
29
25
  end
30
-
31
26
  end
32
-
33
- end
27
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  [:union, :|].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  it "is lazy" do
12
8
  -> { Hamster.stream { fail }.union(Hamster.stream { fail }) }.should_not raise_error
13
9
  end
@@ -20,7 +16,6 @@ describe Hamster::List do
20
16
  ].each do |a, b, expected|
21
17
 
22
18
  describe "returns #{expected.inspect}" do
23
-
24
19
  before do
25
20
  @a = Hamster.list(*a)
26
21
  @b = Hamster.list(*b)
@@ -37,13 +32,8 @@ describe Hamster::List do
37
32
  after do
38
33
  @result.should == Hamster.list(*expected)
39
34
  end
40
-
41
35
  end
42
-
43
36
  end
44
-
45
37
  end
46
-
47
38
  end
48
-
49
- end
39
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  [:uniq, :nub, :remove_duplicates].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  it "is lazy" do
12
8
  -> { Hamster.stream { fail }.uniq }.should_not raise_error
13
9
  end
@@ -20,7 +16,6 @@ describe Hamster::List do
20
16
  ].each do |values, expected|
21
17
 
22
18
  describe "on #{values.inspect}" do
23
-
24
19
  before do
25
20
  @original = Hamster.list(*values)
26
21
  @result = @original.send(method)
@@ -33,13 +28,8 @@ describe Hamster::List do
33
28
  it "returns #{expected.inspect}" do
34
29
  @result.should == Hamster.list(*expected)
35
30
  end
36
-
37
31
  end
38
-
39
32
  end
40
-
41
33
  end
42
-
43
34
  end
44
-
45
- end
35
+ end
@@ -1,11 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/queue"
4
3
 
5
4
  describe Hamster::Queue do
6
-
7
5
  describe "#clear" do
8
-
9
6
  [
10
7
  [],
11
8
  ["A"],
@@ -13,7 +10,6 @@ describe Hamster::Queue do
13
10
  ].each do |values|
14
11
 
15
12
  describe "on #{values}" do
16
-
17
13
  before do
18
14
  @original = Hamster.queue(*values)
19
15
  @result = @original.clear
@@ -26,11 +22,7 @@ describe Hamster::Queue do
26
22
  it "returns an empty queue" do
27
23
  @result.should equal(Hamster.queue)
28
24
  end
29
-
30
25
  end
31
-
32
26
  end
33
-
34
27
  end
35
-
36
- end
28
+ end