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

Sign up to get free protection for your applications and to get access to all the features.
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,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 "#clear" 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}" do
16
-
17
13
  before do
18
14
  @original = Hamster.list(*values)
19
15
  @result = @original.clear
@@ -26,11 +22,7 @@ describe Hamster::List do
26
22
  it "returns an empty list" do
27
23
  @result.should equal(Hamster.list)
28
24
  end
29
-
30
25
  end
31
-
32
26
  end
33
-
34
27
  end
35
-
36
- end
28
+ 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
  [:combinations, :combination].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  it "is lazy" do
12
8
  -> { Hamster.stream { fail }.combinations(2) }.should_not raise_error
13
9
  end
@@ -26,7 +22,6 @@ describe Hamster::List do
26
22
  expected = expected.map { |x| Hamster.list(*x) }
27
23
 
28
24
  describe "on #{values.inspect} in groups of #{number}" do
29
-
30
25
  before do
31
26
  @original = Hamster.list(*values)
32
27
  @result = @original.send(method, number)
@@ -39,13 +34,8 @@ describe Hamster::List do
39
34
  it "returns #{expected.inspect}" do
40
35
  @result.should == Hamster.list(*expected)
41
36
  end
42
-
43
37
  end
44
-
45
38
  end
46
-
47
39
  end
48
-
49
40
  end
50
-
51
- end
41
+ 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 "#compact" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.compact }.should_not raise_error
11
8
  end
@@ -23,7 +20,6 @@ describe Hamster::List do
23
20
  ].each do |values, expected|
24
21
 
25
22
  describe "on #{values.inspect}" do
26
-
27
23
  before do
28
24
  @original = Hamster.list(*values)
29
25
  @result = @original.compact
@@ -36,11 +32,7 @@ describe Hamster::List do
36
32
  it "returns #{expected.inspect}" do
37
33
  @result.should == Hamster.list(*expected)
38
34
  end
39
-
40
35
  end
41
-
42
36
  end
43
-
44
37
  end
45
-
46
- 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
  [:cons, :>>].each do |method|
8
-
9
6
  describe "##{method}" do
10
7
 
11
8
  [
@@ -16,7 +13,6 @@ describe Hamster::List do
16
13
  ].each do |values, new_value, expected|
17
14
 
18
15
  describe "on #{values.inspect} with #{new_value.inspect}" do
19
-
20
16
  before do
21
17
  @original = Hamster.list(*values)
22
18
  @result = @original.send(method, new_value)
@@ -29,13 +25,8 @@ describe Hamster::List do
29
25
  it "returns #{expected.inspect}" do
30
26
  @result.should == Hamster.list(*expected)
31
27
  end
32
-
33
28
  end
34
-
35
29
  end
36
-
37
30
  end
38
-
39
31
  end
40
-
41
- end
32
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster do
6
-
7
5
  describe ".list" do
8
-
9
6
  describe "with no arguments" do
10
-
11
7
  before do
12
8
  @list = Hamster.list
13
9
  end
@@ -19,11 +15,9 @@ describe Hamster do
19
15
  it "returns an empty list" do
20
16
  @list.should be_empty
21
17
  end
22
-
23
18
  end
24
19
 
25
20
  describe "with a number of items" do
26
-
27
21
  before do
28
22
  @list = Hamster.list("A", "B", "C")
29
23
  end
@@ -35,15 +29,11 @@ describe Hamster do
35
29
  it "is the same as repeatedly using #cons" do
36
30
  @list.should == Hamster.list.cons("C").cons("B").cons("A")
37
31
  end
38
-
39
32
  end
40
-
41
33
  end
42
34
 
43
35
  describe ".stream" do
44
-
45
36
  describe "with no block" do
46
-
47
37
  before do
48
38
  @list = Hamster.stream
49
39
  end
@@ -51,11 +41,9 @@ describe Hamster do
51
41
  it "returns an empty list" do
52
42
  @list.should == Hamster.list
53
43
  end
54
-
55
44
  end
56
45
 
57
46
  describe "with a block" do
58
-
59
47
  before do
60
48
  count = 0
61
49
  @list = Hamster.stream { count += 1 }
@@ -64,17 +52,12 @@ describe Hamster do
64
52
  it "repeatedly calls the block" do
65
53
  @list.take(5).should == Hamster.list(1, 2, 3, 4, 5)
66
54
  end
67
-
68
55
  end
69
-
70
56
  end
71
57
 
72
58
  [:interval, :range].each do |method|
73
-
74
59
  describe ".#{method}" do
75
-
76
60
  describe "for numbers" do
77
-
78
61
  before do
79
62
  @list = Hamster.send(method, 98, 102)
80
63
  end
@@ -82,11 +65,9 @@ describe Hamster do
82
65
  it "is equivalent to a list with explicit values" do
83
66
  @list.should == Hamster.list(98, 99, 100, 101, 102)
84
67
  end
85
-
86
68
  end
87
69
 
88
70
  describe "for strings" do
89
-
90
71
  before do
91
72
  @list = Hamster.send(method, "A", "AA")
92
73
  end
@@ -94,15 +75,11 @@ describe Hamster do
94
75
  it "is equivalent to a list with explicit values" do
95
76
  @list.should == Hamster.list("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA")
96
77
  end
97
-
98
78
  end
99
-
100
79
  end
101
-
102
80
  end
103
81
 
104
82
  describe ".repeat" do
105
-
106
83
  before do
107
84
  @list = Hamster.repeat("A")
108
85
  end
@@ -110,11 +87,9 @@ describe Hamster do
110
87
  it "returns an infinite list with specified value for each element" do
111
88
  @list.take(5).should == Hamster.list("A", "A", "A", "A", "A")
112
89
  end
113
-
114
90
  end
115
91
 
116
92
  describe ".replicate" do
117
-
118
93
  before do
119
94
  @list = Hamster.replicate(5, "A")
120
95
  end
@@ -122,11 +97,9 @@ describe Hamster do
122
97
  it "returns a list with the specified value repeated the specified number of times" do
123
98
  @list.should == Hamster.list("A", "A", "A", "A", "A")
124
99
  end
125
-
126
100
  end
127
101
 
128
102
  describe ".iterate" do
129
-
130
103
  before do
131
104
  @list = Hamster.iterate(1) { |item| item * 2 }
132
105
  end
@@ -134,7 +107,6 @@ describe Hamster do
134
107
  it "returns an infinite list where the first item is calculated by applying the block on the initial argument, the second item by applying the function on the previous result and so on" do
135
108
  @list.take(10).should == Hamster.list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)
136
109
  end
137
-
138
110
  end
139
111
 
140
112
  describe ".enumerate" do
@@ -162,5 +134,4 @@ describe Hamster do
162
134
  expect { list.take(3).to_a }.to raise_exception
163
135
  end
164
136
  end
165
-
166
- end
137
+ 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
  [:dup, :clone].each do |method|
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.send(method)
@@ -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,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 "#count" 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.count }.should_not raise_error
17
13
  end
18
-
19
14
  end
20
15
 
21
16
  [
@@ -28,13 +23,11 @@ describe Hamster::List do
28
23
  ].each do |values, expected|
29
24
 
30
25
  describe "on #{values.inspect}" do
31
-
32
26
  before do
33
27
  @original = Hamster.list(*values)
34
28
  end
35
29
 
36
30
  describe "with a block" do
37
-
38
31
  before do
39
32
  @result = @original.count(&:odd?)
40
33
  end
@@ -42,11 +35,9 @@ describe Hamster::List do
42
35
  it "returns #{expected.inspect}" do
43
36
  @result.should == expected
44
37
  end
45
-
46
38
  end
47
39
 
48
40
  describe "without a block" do
49
-
50
41
  before do
51
42
  @result = @original.count
52
43
  end
@@ -54,13 +45,8 @@ describe Hamster::List do
54
45
  it "returns length" do
55
46
  @result.should == @original.length
56
47
  end
57
-
58
48
  end
59
-
60
49
  end
61
-
62
50
  end
63
-
64
51
  end
65
-
66
- end
52
+ end
@@ -1,17 +1,13 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/list"
4
3
 
5
4
  describe Hamster do
6
-
7
5
  describe "#cycle" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.cycle }.should_not raise_error
11
8
  end
12
9
 
13
10
  describe "with an empty list" do
14
-
15
11
  before do
16
12
  original = Hamster.list
17
13
  @result = original.cycle
@@ -20,11 +16,9 @@ describe Hamster do
20
16
  it "returns an empty list" do
21
17
  @result.should be_empty
22
18
  end
23
-
24
19
  end
25
20
 
26
21
  describe "with a non-empty list" do
27
-
28
22
  before do
29
23
  @original = Hamster.list("A", "B", "C")
30
24
  @result = @original.cycle
@@ -37,9 +31,6 @@ describe Hamster do
37
31
  it "infinitely cycles through all values" do
38
32
  @result.take(7).should == Hamster.list("A", "B", "C", "A", "B", "C", "A")
39
33
  end
40
-
41
34
  end
42
-
43
35
  end
44
-
45
- end
36
+ 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 "#drop" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.drop(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.drop(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,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 "#drop_while" do
8
-
9
6
  it "is lazy" do
10
7
  -> { Hamster.stream { fail }.drop_while { false } }.should_not raise_error
11
8
  end
@@ -17,13 +14,11 @@ describe Hamster::List do
17
14
  ].each do |values, expected|
18
15
 
19
16
  describe "on #{values.inspect}" do
20
-
21
17
  before do
22
18
  @original = Hamster.list(*values)
23
19
  end
24
20
 
25
21
  describe "with a block" do
26
-
27
22
  before do
28
23
  @result = @original.drop_while { |item| item < "C" }
29
24
  end
@@ -35,11 +30,9 @@ describe Hamster::List do
35
30
  it "returns #{expected.inspect}" do
36
31
  @result.should == Hamster.list(*expected)
37
32
  end
38
-
39
33
  end
40
34
 
41
35
  describe "without a block" do
42
-
43
36
  before do
44
37
  @result = @original.drop_while
45
38
  end
@@ -47,13 +40,8 @@ describe Hamster::List do
47
40
  it "returns self" do
48
41
  @result.should equal(@original)
49
42
  end
50
-
51
43
  end
52
-
53
44
  end
54
-
55
45
  end
56
-
57
46
  end
58
-
59
- end
47
+ end