1require_relative '../../../spec_helper'
2require 'set'
3
4describe "SortedSet#keep_if" do
5  before :each do
6    @set = SortedSet["one", "two", "three"]
7  end
8
9  it "yields each Object in self in sorted order" do
10    ret = []
11    @set.keep_if { |x| ret << x }
12    ret.should == ["one", "two", "three"].sort
13  end
14
15  it "keeps every element from self for which the passed block returns true" do
16    @set.keep_if { |x| x.size != 3 }
17    @set.to_a.should == ["three"]
18  end
19
20  it "returns self" do
21    @set.keep_if {}.should equal(@set)
22  end
23
24  it "returns an Enumerator when passed no block" do
25    enum = @set.keep_if
26    enum.should be_an_instance_of(Enumerator)
27
28    enum.each { |x| x.size != 3 }
29    @set.to_a.should == ["three"]
30  end
31end
32