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,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 "#none?" 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,11 +11,9 @@ describe Hamster::List do
15
11
  it "doesn't run out of stack" do
16
12
  -> { @list.none? { false } }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  describe "when empty" do
22
-
23
17
  before do
24
18
  @list = Hamster.list
25
19
  end
@@ -31,33 +25,26 @@ describe Hamster::List do
31
25
  it "with no block returns true" do
32
26
  @list.none?.should == true
33
27
  end
34
-
35
28
  end
36
29
 
37
30
  describe "when not empty" do
38
-
39
31
  describe "with a block" do
40
-
41
32
  before do
42
33
  @list = Hamster.list("A", "B", "C", nil)
43
34
  end
44
35
 
45
36
  ["A", "B", "C", nil].each do |value|
46
-
47
37
  it "returns false if the block ever returns true (#{value.inspect})" do
48
38
  @list.none? { |item| item == value }.should == false
49
39
  end
50
-
51
40
  end
52
41
 
53
42
  it "returns true if the block always returns false" do
54
43
  @list.none? { |item| item == "D" }.should == true
55
44
  end
56
-
57
45
  end
58
46
 
59
47
  describe "with no block" do
60
-
61
48
  it "returns false if any value is truthy" do
62
49
  Hamster.list(nil, false, true, "A").none?.should == false
63
50
  end
@@ -65,11 +52,7 @@ describe Hamster::List do
65
52
  it "returns true if all values are falsey" do
66
53
  Hamster.list(nil, false).none?.should == true
67
54
  end
68
-
69
55
  end
70
-
71
56
  end
72
-
73
57
  end
74
-
75
- end
58
+ 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 "#one?" 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,11 +11,9 @@ describe Hamster::List do
15
11
  it "doesn't run out of stack" do
16
12
  -> { @list.one? { false } }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  describe "when empty" do
22
-
23
17
  before do
24
18
  @list = Hamster.list
25
19
  end
@@ -31,13 +25,10 @@ describe Hamster::List do
31
25
  it "with no block returns false" do
32
26
  @list.one?.should == false
33
27
  end
34
-
35
28
  end
36
29
 
37
30
  describe "when not empty" do
38
-
39
31
  describe "with a block" do
40
-
41
32
  before do
42
33
  @list = Hamster.list("A", "B", "C")
43
34
  end
@@ -53,11 +44,9 @@ describe Hamster::List do
53
44
  it "returns true if the block only returns true once" do
54
45
  @list.one? { |item| item == "A" }.should == true
55
46
  end
56
-
57
47
  end
58
48
 
59
49
  describe "with no block" do
60
-
61
50
  it "returns false if more than one value is truthy" do
62
51
  Hamster.list(nil, true, "A").one?.should == false
63
52
  end
@@ -65,11 +54,7 @@ describe Hamster::List do
65
54
  it "returns true if only one value is truthy" do
66
55
  Hamster.list(nil, true, false).one?.should == true
67
56
  end
68
-
69
57
  end
70
-
71
58
  end
72
-
73
59
  end
74
-
75
- end
60
+ 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 "#partition" do
9
-
10
7
  it "is lazy" do
11
8
  -> { Hamster.stream { fail }.partition }.should_not raise_error
12
9
  end
@@ -23,13 +20,11 @@ describe Hamster::List do
23
20
  ].each do |values, expected_matches, expected_remainder|
24
21
 
25
22
  describe "on #{values.inspect}" do
26
-
27
23
  before do
28
24
  @original = Hamster.list(*values)
29
25
  end
30
26
 
31
27
  describe "with a block" do
32
-
33
28
  before do
34
29
  @result = @original.partition(&:odd?)
35
30
  @matches = @result.first
@@ -51,11 +46,9 @@ describe Hamster::List do
51
46
  it "correctly identifies the remainder" do
52
47
  @remainder.should == Hamster.list(*expected_remainder)
53
48
  end
54
-
55
49
  end
56
50
 
57
51
  describe "without a block" do
58
-
59
52
  before do
60
53
  @result = @original.partition
61
54
  end
@@ -63,13 +56,8 @@ describe Hamster::List do
63
56
  it "returns self" do
64
57
  @result.should equal(@original)
65
58
  end
66
-
67
59
  end
68
-
69
60
  end
70
-
71
61
  end
72
-
73
62
  end
74
-
75
- end
63
+ 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 "#product" 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.product }.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.product
@@ -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,5 +1,4 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
@@ -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
  [:remove, :reject, :delete_if].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  it "is lazy" do
12
8
  -> { Hamster.stream { fail }.send(method) { |item| false } }.should_not raise_error
13
9
  end
@@ -21,13 +17,11 @@ describe Hamster::List do
21
17
  ].each do |values, expected|
22
18
 
23
19
  describe "on #{values.inspect}" do
24
-
25
20
  before do
26
21
  @original = Hamster.list(*values)
27
22
  end
28
23
 
29
24
  describe "with a block" do
30
-
31
25
  before do
32
26
  @result = @original.send(method) { |item| item == item.downcase }
33
27
  end
@@ -44,11 +38,9 @@ describe Hamster::List do
44
38
  end
45
39
  count.should <= 1
46
40
  end
47
-
48
41
  end
49
42
 
50
43
  describe "without a block" do
51
-
52
44
  before do
53
45
  @result = @original.send(method)
54
46
  end
@@ -56,15 +48,9 @@ describe Hamster::List do
56
48
  it "returns self" do
57
49
  @result.should equal(@original)
58
50
  end
59
-
60
51
  end
61
-
62
52
  end
63
-
64
53
  end
65
-
66
54
  end
67
-
68
55
  end
69
-
70
- end
56
+ 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 "#reverse" 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.reverse }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  it "is lazy" do
@@ -29,7 +24,6 @@ describe Hamster::List do
29
24
  ].each do |values, expected|
30
25
 
31
26
  describe "on #{values.inspect}" do
32
-
33
27
  before do
34
28
  @original = Hamster.list(*values)
35
29
  @result = @original.reverse { |item| item.downcase }
@@ -42,11 +36,7 @@ describe Hamster::List do
42
36
  it "returns #{expected.inspect}" do
43
37
  @result.should == Hamster.list(*expected)
44
38
  end
45
-
46
39
  end
47
-
48
40
  end
49
-
50
41
  end
51
-
52
- end
42
+ end
@@ -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
  [:size, :length].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.size }.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, expected|
28
22
 
29
23
  describe "on #{values.inspect}" do
30
-
31
24
  before do
32
25
  @list = Hamster.list(*values)
33
26
  end
@@ -35,13 +28,8 @@ describe Hamster::List do
35
28
  it "returns #{expected.inspect}" do
36
29
  @list.send(method).should == expected
37
30
  end
38
-
39
31
  end
40
-
41
32
  end
42
-
43
33
  end
44
-
45
34
  end
46
-
47
- end
35
+ 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
  [:slice, :[]].each do |method|
8
-
9
6
  describe "#slice" do
10
-
11
7
  it "is lazy" do
12
8
  -> { Hamster.stream { fail }.send(method, 1, 5) }.should_not raise_error
13
9
  end
@@ -25,7 +21,6 @@ describe Hamster::List do
25
21
  ].each do |values, from, length, expected|
26
22
 
27
23
  describe "#{values.inspect} from #{from} for a length of #{length}" do
28
-
29
24
  before do
30
25
  @original = Hamster.list(*values)
31
26
  @result = @original.send(method, from, length)
@@ -38,13 +33,8 @@ describe Hamster::List do
38
33
  it "returns #{expected.inspect}" do
39
34
  @result.should == Hamster.list(*expected)
40
35
  end
41
-
42
36
  end
43
-
44
37
  end
45
-
46
38
  end
47
-
48
39
  end
49
-
50
- end
40
+ end
@@ -1,16 +1,13 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster::List do
6
-
7
5
  [
8
6
  [:sort, ->(left, right) { left.length <=> right.length }],
9
7
  [:sort_by, ->(item) { item.length }],
10
8
  ].each do |method, comparator|
11
9
 
12
10
  describe "##{method}" do
13
-
14
11
  it "is lazy" do
15
12
  -> { Hamster.stream { fail }.send(method, &comparator) }.should_not raise_error
16
13
  end
@@ -22,13 +19,11 @@ describe Hamster::List do
22
19
  ].each do |values, expected|
23
20
 
24
21
  describe "on #{values.inspect}" do
25
-
26
22
  before do
27
23
  @original = Hamster.list(*values)
28
24
  end
29
25
 
30
26
  describe "with a block" do
31
-
32
27
  before do
33
28
  @result = @original.send(method, &comparator)
34
29
  end
@@ -40,11 +35,9 @@ describe Hamster::List do
40
35
  it "returns #{expected.inspect}" do
41
36
  @result.should == Hamster.list(*expected)
42
37
  end
43
-
44
38
  end
45
39
 
46
40
  describe "without a block" do
47
-
48
41
  before do
49
42
  @result = @original.send(method)
50
43
  end
@@ -56,15 +49,9 @@ describe Hamster::List do
56
49
  it "returns #{expected.sort.inspect}" do
57
50
  @result.should == Hamster.list(*expected.sort)
58
51
  end
59
-
60
52
  end
61
-
62
53
  end
63
-
64
54
  end
65
-
66
55
  end
67
-
68
56
  end
69
-
70
- end
57
+ end