summaryrefslogtreecommitdiff
path: root/spec/ruby/core/range
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/range')
-rw-r--r--spec/ruby/core/range/entries_spec.rb7
-rw-r--r--spec/ruby/core/range/include_spec.rb90
-rw-r--r--spec/ruby/core/range/member_spec.rb9
-rw-r--r--spec/ruby/core/range/shared/include.rb91
4 files changed, 97 insertions, 100 deletions
diff --git a/spec/ruby/core/range/entries_spec.rb b/spec/ruby/core/range/entries_spec.rb
new file mode 100644
index 0000000000..29296711dc
--- /dev/null
+++ b/spec/ruby/core/range/entries_spec.rb
@@ -0,0 +1,7 @@
+require_relative '../../spec_helper'
+
+describe "Range#entries" do
+ it "is an alias of Range#to_a" do
+ Range.instance_method(:entries).should == Range.instance_method(:to_a)
+ end
+end
diff --git a/spec/ruby/core/range/include_spec.rb b/spec/ruby/core/range/include_spec.rb
index 66a049a90d..e5cc0dc234 100644
--- a/spec/ruby/core/range/include_spec.rb
+++ b/spec/ruby/core/range/include_spec.rb
@@ -1,12 +1,96 @@
# encoding: binary
require_relative '../../spec_helper'
+require_relative 'fixtures/classes'
require_relative 'shared/cover_and_include'
-require_relative 'shared/include'
-require_relative 'shared/cover'
describe "Range#include?" do
it_behaves_like :range_cover_and_include, :include?
- it_behaves_like :range_include, :include?
+
+ describe "on string elements" do
+ it "returns true if other is matched by element.succ" do
+ ('a'..'c').include?('b').should == true
+ ('a'...'c').include?('b').should == true
+ end
+
+ it "returns false if other is not matched by element.succ" do
+ ('a'..'c').include?('bc').should == false
+ ('a'...'c').include?('bc').should == false
+ end
+ end
+
+ describe "with weird succ" do
+ describe "when included end value" do
+ before :each do
+ @range = RangeSpecs::TenfoldSucc.new(1)..RangeSpecs::TenfoldSucc.new(99)
+ end
+
+ it "returns false if other is less than first element" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(0)).should == false
+ end
+
+ it "returns true if other is equal as first element" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(1)).should == true
+ end
+
+ it "returns true if other is matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(10)).should == true
+ end
+
+ it "returns false if other is not matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(2)).should == false
+ end
+
+ it "returns false if other is equal as last element but not matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(99)).should == false
+ end
+
+ it "returns false if other is greater than last element but matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(100)).should == false
+ end
+ end
+
+ describe "when excluded end value" do
+ before :each do
+ @range = RangeSpecs::TenfoldSucc.new(1)...RangeSpecs::TenfoldSucc.new(99)
+ end
+
+ it "returns false if other is less than first element" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(0)).should == false
+ end
+
+ it "returns true if other is equal as first element" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(1)).should == true
+ end
+
+ it "returns true if other is matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(10)).should == true
+ end
+
+ it "returns false if other is not matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(2)).should == false
+ end
+
+ it "returns false if other is equal as last element but not matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(99)).should == false
+ end
+
+ it "returns false if other is greater than last element but matched by element.succ" do
+ @range.include?(RangeSpecs::TenfoldSucc.new(100)).should == false
+ end
+ end
+ end
+
+ describe "with Time endpoints" do
+ it "uses cover? logic" do
+ now = Time.now
+ range = (now..(now + 60))
+
+ range.include?(now).should == true
+ range.include?(now - 1).should == false
+ range.include?(now + 60).should == true
+ range.include?(now + 61).should == false
+ end
+ end
it "does not include U+9995 in the range U+0999..U+9999" do
("\u{999}".."\u{9999}").include?("\u{9995}").should == false
diff --git a/spec/ruby/core/range/member_spec.rb b/spec/ruby/core/range/member_spec.rb
index 78299ae9e5..98835e4cf3 100644
--- a/spec/ruby/core/range/member_spec.rb
+++ b/spec/ruby/core/range/member_spec.rb
@@ -1,10 +1,7 @@
-# encoding: binary
require_relative '../../spec_helper'
-require_relative 'shared/cover_and_include'
-require_relative 'shared/include'
-require_relative 'shared/cover'
describe "Range#member?" do
- it_behaves_like :range_cover_and_include, :member?
- it_behaves_like :range_include, :member?
+ it "is an alias of Range#include?" do
+ Range.instance_method(:member?).should == Range.instance_method(:include?)
+ end
end
diff --git a/spec/ruby/core/range/shared/include.rb b/spec/ruby/core/range/shared/include.rb
deleted file mode 100644
index 5f0db48008..0000000000
--- a/spec/ruby/core/range/shared/include.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-# encoding: binary
-require_relative '../../../spec_helper'
-require_relative '../fixtures/classes'
-
-describe :range_include, shared: true do
- describe "on string elements" do
- it "returns true if other is matched by element.succ" do
- ('a'..'c').send(@method, 'b').should == true
- ('a'...'c').send(@method, 'b').should == true
- end
-
- it "returns false if other is not matched by element.succ" do
- ('a'..'c').send(@method, 'bc').should == false
- ('a'...'c').send(@method, 'bc').should == false
- end
- end
-
- describe "with weird succ" do
- describe "when included end value" do
- before :each do
- @range = RangeSpecs::TenfoldSucc.new(1)..RangeSpecs::TenfoldSucc.new(99)
- end
-
- it "returns false if other is less than first element" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(0)).should == false
- end
-
- it "returns true if other is equal as first element" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(1)).should == true
- end
-
- it "returns true if other is matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(10)).should == true
- end
-
- it "returns false if other is not matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(2)).should == false
- end
-
- it "returns false if other is equal as last element but not matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(99)).should == false
- end
-
- it "returns false if other is greater than last element but matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(100)).should == false
- end
- end
-
- describe "when excluded end value" do
- before :each do
- @range = RangeSpecs::TenfoldSucc.new(1)...RangeSpecs::TenfoldSucc.new(99)
- end
-
- it "returns false if other is less than first element" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(0)).should == false
- end
-
- it "returns true if other is equal as first element" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(1)).should == true
- end
-
- it "returns true if other is matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(10)).should == true
- end
-
- it "returns false if other is not matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(2)).should == false
- end
-
- it "returns false if other is equal as last element but not matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(99)).should == false
- end
-
- it "returns false if other is greater than last element but matched by element.succ" do
- @range.send(@method, RangeSpecs::TenfoldSucc.new(100)).should == false
- end
- end
- end
-
- describe "with Time endpoints" do
- it "uses cover? logic" do
- now = Time.now
- range = (now..(now + 60))
-
- range.include?(now).should == true
- range.include?(now - 1).should == false
- range.include?(now + 60).should == true
- range.include?(now + 61).should == false
- end
- end
-end