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.
- checksums.yaml +4 -4
- data/lib/hamster/groupable.rb +12 -0
- data/lib/hamster/hash.rb +32 -12
- data/lib/hamster/list.rb +68 -22
- data/lib/hamster/queue.rb +5 -6
- data/lib/hamster/set.rb +50 -14
- data/lib/hamster/stack.rb +2 -0
- data/lib/hamster/trie.rb +34 -14
- data/lib/hamster/tuple.rb +9 -24
- data/lib/hamster/vector.rb +29 -7
- data/lib/hamster/version.rb +1 -1
- data/spec/hamster/core_ext/array_spec.rb +4 -10
- data/spec/hamster/core_ext/enumerable_spec.rb +1 -0
- data/spec/hamster/experimental/mutable_set/add_qm_spec.rb +14 -22
- data/spec/hamster/experimental/mutable_set/add_spec.rb +20 -34
- data/spec/hamster/experimental/mutable_set/delete_qm_spec.rb +15 -24
- data/spec/hamster/experimental/mutable_set/delete_spec.rb +15 -25
- data/spec/hamster/experimental/mutable_stack/pop_spec.rb +21 -27
- data/spec/hamster/experimental/mutable_stack/push_spec.rb +11 -31
- data/spec/hamster/hash/all_spec.rb +21 -34
- data/spec/hamster/hash/any_spec.rb +0 -15
- data/spec/hamster/hash/clear_spec.rb +1 -8
- data/spec/hamster/hash/construction_spec.rb +3 -11
- data/spec/hamster/hash/copying_spec.rb +1 -8
- data/spec/hamster/hash/delete_spec.rb +1 -10
- data/spec/hamster/hash/each_spec.rb +1 -12
- data/spec/hamster/hash/empty_spec.rb +8 -8
- data/spec/hamster/hash/eql_spec.rb +30 -22
- data/spec/hamster/hash/except_spec.rb +1 -10
- data/spec/hamster/hash/fetch_spec.rb +1 -24
- data/spec/hamster/hash/filter_spec.rb +1 -16
- data/spec/hamster/hash/find_spec.rb +1 -14
- data/spec/hamster/hash/has_key_spec.rb +1 -10
- data/spec/hamster/hash/hash_spec.rb +1 -16
- data/spec/hamster/hash/immutable_spec.rb +0 -3
- data/spec/hamster/hash/inspect_spec.rb +1 -9
- data/spec/hamster/hash/keys_spec.rb +4 -5
- data/spec/hamster/hash/map_spec.rb +1 -16
- data/spec/hamster/hash/merge_spec.rb +5 -11
- data/spec/hamster/hash/new_spec.rb +21 -0
- data/spec/hamster/hash/put_spec.rb +13 -11
- data/spec/hamster/hash/reduce_spec.rb +7 -15
- data/spec/hamster/hash/remove_spec.rb +1 -16
- data/spec/hamster/hash/uniq_spec.rb +1 -8
- data/spec/hamster/hash/values_spec.rb +1 -6
- data/spec/hamster/immutable/copying_spec.rb +1 -8
- data/spec/hamster/immutable/immutable_spec.rb +1 -14
- data/spec/hamster/immutable/memoize_spec.rb +0 -1
- data/spec/hamster/list/add_spec.rb +1 -6
- data/spec/hamster/list/all_spec.rb +1 -28
- data/spec/hamster/list/any_spec.rb +1 -20
- data/spec/hamster/list/append_spec.rb +1 -11
- data/spec/hamster/list/at_spec.rb +1 -13
- data/spec/hamster/list/break_spec.rb +1 -13
- data/spec/hamster/list/cadr_spec.rb +1 -9
- data/spec/hamster/list/chunk_spec.rb +1 -9
- data/spec/hamster/list/clear_spec.rb +1 -9
- data/spec/hamster/list/combinations_spec.rb +1 -11
- data/spec/hamster/list/compact_spec.rb +1 -9
- data/spec/hamster/list/cons_spec.rb +1 -10
- data/spec/hamster/list/construction_spec.rb +1 -30
- data/spec/hamster/list/copying_spec.rb +1 -9
- data/spec/hamster/list/count_spec.rb +1 -15
- data/spec/hamster/list/cycle_spec.rb +1 -10
- data/spec/hamster/list/drop_spec.rb +1 -9
- data/spec/hamster/list/drop_while_spec.rb +1 -13
- data/spec/hamster/list/each_slice_spec.rb +1 -17
- data/spec/hamster/list/each_spec.rb +1 -17
- data/spec/hamster/list/each_with_index_spec.rb +1 -10
- data/spec/hamster/list/elem_index_spec.rb +1 -13
- data/spec/hamster/list/elem_indices_spec.rb +1 -11
- data/spec/hamster/list/empty_spec.rb +1 -13
- data/spec/hamster/list/eql_spec.rb +52 -62
- data/spec/hamster/list/find_index_spec.rb +1 -13
- data/spec/hamster/list/find_indices_spec.rb +1 -11
- data/spec/hamster/list/find_spec.rb +1 -17
- data/spec/hamster/list/flatten_spec.rb +1 -9
- data/spec/hamster/list/grep_spec.rb +1 -16
- data/spec/hamster/list/group_by_spec.rb +1 -20
- data/spec/hamster/list/head_spec.rb +1 -11
- data/spec/hamster/list/include_spec.rb +1 -13
- data/spec/hamster/list/init_spec.rb +1 -8
- data/spec/hamster/list/inits_spec.rb +1 -9
- data/spec/hamster/list/inspect_spec.rb +1 -11
- data/spec/hamster/list/intersperse_spec.rb +1 -9
- data/spec/hamster/list/join_spec.rb +1 -18
- data/spec/hamster/list/last_spec.rb +1 -11
- data/spec/hamster/list/map_spec.rb +1 -15
- data/spec/hamster/list/maximum_spec.rb +1 -20
- data/spec/hamster/list/merge_by_spec.rb +1 -19
- data/spec/hamster/list/merge_spec.rb +1 -20
- data/spec/hamster/list/minimum_spec.rb +1 -20
- data/spec/hamster/list/none_spec.rb +1 -18
- data/spec/hamster/list/one_spec.rb +1 -16
- data/spec/hamster/list/partition_spec.rb +1 -13
- data/spec/hamster/list/product_spec.rb +1 -11
- data/spec/hamster/list/reduce_spec.rb +0 -1
- data/spec/hamster/list/remove_spec.rb +1 -15
- data/spec/hamster/list/reverse_spec.rb +1 -11
- data/spec/hamster/list/size_spec.rb +1 -13
- data/spec/hamster/list/slice_spec.rb +1 -11
- data/spec/hamster/list/sorting_spec.rb +1 -14
- data/spec/hamster/list/span_spec.rb +1 -12
- data/spec/hamster/list/split_at_spec.rb +1 -9
- data/spec/hamster/list/sum_spec.rb +1 -11
- data/spec/hamster/list/tail_spec.rb +1 -11
- data/spec/hamster/list/tails_spec.rb +1 -9
- data/spec/hamster/list/take_spec.rb +1 -9
- data/spec/hamster/list/take_while_spec.rb +0 -1
- data/spec/hamster/list/to_a_spec.rb +1 -13
- data/spec/hamster/list/to_ary_spec.rb +0 -1
- data/spec/hamster/list/to_list_spec.rb +1 -9
- data/spec/hamster/list/to_set_spec.rb +2 -8
- data/spec/hamster/list/union_spec.rb +1 -11
- data/spec/hamster/list/uniq_spec.rb +1 -11
- data/spec/hamster/queue/clear_spec.rb +1 -9
- data/spec/hamster/queue/construction_spec.rb +1 -10
- data/spec/hamster/queue/dequeue_spec.rb +1 -11
- data/spec/hamster/queue/empty_spec.rb +1 -13
- data/spec/hamster/queue/enqueue_spec.rb +1 -11
- data/spec/hamster/queue/head_spec.rb +1 -11
- data/spec/hamster/queue/inspect_spec.rb +1 -9
- data/spec/hamster/queue/size_spec.rb +1 -11
- data/spec/hamster/queue/to_a_spec.rb +1 -11
- data/spec/hamster/queue/to_list_spec.rb +1 -11
- data/spec/hamster/set/add_spec.rb +1 -12
- data/spec/hamster/set/all_spec.rb +1 -18
- data/spec/hamster/set/any_spec.rb +1 -17
- data/spec/hamster/set/clear_spec.rb +9 -8
- data/spec/hamster/set/compact_spec.rb +1 -9
- data/spec/hamster/set/construction_spec.rb +1 -9
- data/spec/hamster/set/copying_spec.rb +1 -8
- data/spec/hamster/set/count_spec.rb +1 -13
- data/spec/hamster/set/delete_spec.rb +1 -10
- data/spec/hamster/set/difference_spec.rb +1 -11
- data/spec/hamster/set/empty_spec.rb +1 -11
- data/spec/hamster/set/exclusion_spec.rb +1 -11
- data/spec/hamster/set/filter_spec.rb +10 -17
- data/spec/hamster/set/find_spec.rb +1 -14
- data/spec/hamster/set/flatten_spec.rb +8 -10
- data/spec/hamster/set/group_by_spec.rb +8 -17
- data/spec/hamster/set/head_spec.rb +1 -12
- data/spec/hamster/set/immutable_spec.rb +1 -4
- data/spec/hamster/set/include_spec.rb +1 -9
- data/spec/hamster/set/inspect_spec.rb +1 -9
- data/spec/hamster/set/intersection_spec.rb +1 -11
- data/spec/hamster/set/join_spec.rb +1 -16
- data/spec/hamster/set/map_spec.rb +1 -16
- data/spec/hamster/set/marshal_spec.rb +1 -6
- data/spec/hamster/set/maximum_spec.rb +1 -18
- data/spec/hamster/set/minimum_spec.rb +1 -17
- data/spec/hamster/set/new_spec.rb +21 -0
- data/spec/hamster/set/none_spec.rb +1 -16
- data/spec/hamster/set/one_spec.rb +1 -14
- data/spec/hamster/set/partition_spec.rb +1 -13
- data/spec/hamster/set/product_spec.rb +1 -9
- data/spec/hamster/set/reduce_spec.rb +1 -26
- data/spec/hamster/set/remove_spec.rb +1 -16
- data/spec/hamster/set/size_spec.rb +1 -9
- data/spec/hamster/set/sorting_spec.rb +1 -3
- data/spec/hamster/set/subset_spec.rb +1 -9
- data/spec/hamster/set/sum_spec.rb +1 -9
- data/spec/hamster/set/superset_spec.rb +1 -9
- data/spec/hamster/set/to_a_spec.rb +1 -11
- data/spec/hamster/set/to_list_spec.rb +1 -11
- data/spec/hamster/set/to_set_spec.rb +1 -9
- data/spec/hamster/set/union_spec.rb +1 -11
- data/spec/hamster/set/uniq_spec.rb +1 -7
- data/spec/hamster/sorter/immutable_spec.rb +1 -4
- data/spec/hamster/stack/clear_spec.rb +1 -9
- data/spec/hamster/stack/construction_spec.rb +1 -10
- data/spec/hamster/stack/copying_spec.rb +1 -9
- data/spec/hamster/stack/empty_spec.rb +1 -9
- data/spec/hamster/stack/eql_spec.rb +1 -13
- data/spec/hamster/stack/immutable_spec.rb +1 -4
- data/spec/hamster/stack/inspect_spec.rb +1 -9
- data/spec/hamster/stack/peek_spec.rb +1 -11
- data/spec/hamster/stack/pop_spec.rb +1 -11
- data/spec/hamster/stack/push_spec.rb +1 -11
- data/spec/hamster/stack/size_spec.rb +1 -11
- data/spec/hamster/stack/to_a_spec.rb +1 -11
- data/spec/hamster/stack/to_list_spec.rb +1 -9
- data/spec/hamster/tuple/construction_spec.rb +30 -0
- data/spec/hamster/tuple/copying_spec.rb +1 -8
- data/spec/hamster/tuple/eql_spec.rb +57 -40
- data/spec/hamster/tuple/first_spec.rb +1 -6
- data/spec/hamster/tuple/immutable_spec.rb +1 -4
- data/spec/hamster/tuple/inspect_spec.rb +1 -6
- data/spec/hamster/tuple/last_spec.rb +1 -6
- data/spec/hamster/tuple/to_a_spec.rb +1 -9
- data/spec/hamster/tuple/to_ary_spec.rb +0 -1
- data/spec/hamster/undefined/erase_spec.rb +1 -12
- data/spec/hamster/vector/add_spec.rb +8 -0
- data/spec/hamster/vector/clear_spec.rb +1 -8
- data/spec/hamster/vector/copying_spec.rb +1 -8
- data/spec/hamster/vector/each_spec.rb +1 -11
- data/spec/hamster/vector/each_with_index_spec.rb +1 -9
- data/spec/hamster/vector/empty_spec.rb +7 -9
- data/spec/hamster/vector/eql_spec.rb +1 -12
- data/spec/hamster/vector/filter_spec.rb +8 -12
- data/spec/hamster/vector/first_spec.rb +1 -11
- data/spec/hamster/vector/get_spec.rb +1 -23
- data/spec/hamster/vector/include_spec.rb +1 -10
- data/spec/hamster/vector/map_spec.rb +8 -14
- data/spec/hamster/vector/new_spec.rb +48 -0
- data/spec/hamster/vector/reduce_spec.rb +1 -26
- data/spec/hamster/vector/set_spec.rb +8 -0
- data/spec/spec_helper.rb +0 -5
- 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,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
|