diff options
Diffstat (limited to 'spec/rubyspec/core/comparable')
| -rw-r--r-- | spec/rubyspec/core/comparable/between_spec.rb | 25 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/clamp_spec.rb | 50 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/equal_value_spec.rb | 139 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/fixtures/classes.rb | 36 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/gt_spec.rb | 43 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/gte_spec.rb | 47 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/lt_spec.rb | 43 | ||||
| -rw-r--r-- | spec/rubyspec/core/comparable/lte_spec.rb | 46 |
8 files changed, 0 insertions, 429 deletions
diff --git a/spec/rubyspec/core/comparable/between_spec.rb b/spec/rubyspec/core/comparable/between_spec.rb deleted file mode 100644 index ebeadb7569..0000000000 --- a/spec/rubyspec/core/comparable/between_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Comparable#between?" do - it "returns true if self is greater than or equal to the first and less than or equal to the second argument" do - a = ComparableSpecs::Weird.new(-1) - b = ComparableSpecs::Weird.new(0) - c = ComparableSpecs::Weird.new(1) - d = ComparableSpecs::Weird.new(2) - - a.between?(a, a).should == true - a.between?(a, b).should == true - a.between?(a, c).should == true - a.between?(a, d).should == true - c.between?(c, d).should == true - d.between?(d, d).should == true - c.between?(a, d).should == true - - a.between?(b, b).should == false - a.between?(b, c).should == false - a.between?(b, d).should == false - c.between?(a, a).should == false - c.between?(a, b).should == false - end -end diff --git a/spec/rubyspec/core/comparable/clamp_spec.rb b/spec/rubyspec/core/comparable/clamp_spec.rb deleted file mode 100644 index 75868258b5..0000000000 --- a/spec/rubyspec/core/comparable/clamp_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -ruby_version_is '2.4' do - describe 'Comparable#clamp' do - it 'raises an Argument error unless given 2 parameters' do - c = ComparableSpecs::Weird.new(0) - lambda { c.clamp(c) }.should raise_error(ArgumentError) - lambda { c.clamp(c, c, c) }.should raise_error(ArgumentError) - end - - it 'raises an Argument error unless the 2 parameters are correctly ordered' do - one = ComparableSpecs::WithOnlyCompareDefined.new(1) - two = ComparableSpecs::WithOnlyCompareDefined.new(2) - c = ComparableSpecs::Weird.new(3) - - lambda { c.clamp(two, one) }.should raise_error(ArgumentError) - one.should_receive(:<=>).any_number_of_times.and_return(nil) - lambda { c.clamp(one, two) }.should raise_error(ArgumentError) - end - - it 'returns self if within the given parameters' do - one = ComparableSpecs::WithOnlyCompareDefined.new(1) - two = ComparableSpecs::WithOnlyCompareDefined.new(2) - three = ComparableSpecs::WithOnlyCompareDefined.new(3) - c = ComparableSpecs::Weird.new(2) - - c.clamp(one, two).should equal(c) - c.clamp(two, two).should equal(c) - c.clamp(one, three).should equal(c) - c.clamp(two, three).should equal(c) - end - - it 'returns the min parameter if smaller than it' do - one = ComparableSpecs::WithOnlyCompareDefined.new(1) - two = ComparableSpecs::WithOnlyCompareDefined.new(2) - c = ComparableSpecs::Weird.new(0) - - c.clamp(one, two).should equal(one) - end - - it 'returns the max parameter if greater than it' do - one = ComparableSpecs::WithOnlyCompareDefined.new(1) - two = ComparableSpecs::WithOnlyCompareDefined.new(2) - c = ComparableSpecs::Weird.new(3) - - c.clamp(one, two).should equal(two) - end - end -end diff --git a/spec/rubyspec/core/comparable/equal_value_spec.rb b/spec/rubyspec/core/comparable/equal_value_spec.rb deleted file mode 100644 index 2bc22771b4..0000000000 --- a/spec/rubyspec/core/comparable/equal_value_spec.rb +++ /dev/null @@ -1,139 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Comparable#==" do - a = b = nil - before :each do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(10) - end - - it "returns true if other is the same as self" do - (a == a).should == true - (b == b).should == true - end - - it "calls #<=> on self with other and returns true if #<=> returns 0" do - a.should_receive(:<=>).once.and_return(0) - (a == b).should == true - end - - it "calls #<=> on self with other and returns true if #<=> returns 0.0" do - a.should_receive(:<=>).once.and_return(0.0) - (a == b).should == true - end - - it "returns false if calling #<=> on self returns a positive Integer" do - a.should_receive(:<=>).once.and_return(1) - (a == b).should == false - end - - it "returns false if calling #<=> on self returns a negative Integer" do - a.should_receive(:<=>).once.and_return(-1) - (a == b).should == false - end - - context "when #<=> returns nil" do - before :each do - a.should_receive(:<=>).once.and_return(nil) - end - - it "returns false" do - (a == b).should be_false - end - end - - context "when #<=> returns nor nil neither an Integer" do - before :each do - a.should_receive(:<=>).once.and_return("abc") - end - - ruby_version_is ""..."2.3" do - it "returns false" do - (a == b).should be_false - end - end - - ruby_version_is "2.3" do - it "raises an ArgumentError" do - lambda { (a == b) }.should raise_error(ArgumentError) - end - end - end - - context "when #<=> raises an exception" do - context "if it is a StandardError" do - before :each do - a.should_receive(:<=>).once.and_raise(StandardError) - end - - ruby_version_is ""..."2.3" do - # Behaviour confirmed by MRI test suite - it "returns false" do - (a == b).should be_false - end - end - - ruby_version_is "2.3" do - it "lets it go through" do - lambda { (a == b) }.should raise_error(StandardError) - end - end - end - - context "if it is a subclass of StandardError" do - # TypeError < StandardError - before :each do - a.should_receive(:<=>).once.and_raise(TypeError) - end - - ruby_version_is ""..."2.3" do - it "returns false" do - (a == b).should be_false - end - end - - ruby_version_is "2.3" do - it "lets it go through" do - lambda { (a == b) }.should raise_error(TypeError) - end - end - end - - it "lets it go through if it is not a StandardError" do - a.should_receive(:<=>).once.and_raise(Exception) - lambda { (a == b) }.should raise_error(Exception) - end - end - - context "when #<=> is not defined" do - before :each do - @a = ComparableSpecs::WithoutCompareDefined.new - @b = ComparableSpecs::WithoutCompareDefined.new - end - - it "returns true for identical objects" do - @a.should == @a - end - - it "returns false and does not recurse infinitely" do - @a.should_not == @b - end - end - - context "when #<=> calls super" do - before :each do - @a = ComparableSpecs::CompareCallingSuper.new - @b = ComparableSpecs::CompareCallingSuper.new - end - - it "returns true for identical objects" do - @a.should == @a - end - - it "calls the defined #<=> only once for different objects" do - @a.should_not == @b - @a.calls.should == 1 - end - end -end diff --git a/spec/rubyspec/core/comparable/fixtures/classes.rb b/spec/rubyspec/core/comparable/fixtures/classes.rb deleted file mode 100644 index 4239a47d2f..0000000000 --- a/spec/rubyspec/core/comparable/fixtures/classes.rb +++ /dev/null @@ -1,36 +0,0 @@ -module ComparableSpecs - class WithOnlyCompareDefined - attr_reader :value - - def initialize(value) - @value = value - end - - def <=>(other) - self.value <=> other.value - end - end - - class Weird < WithOnlyCompareDefined - include Comparable - end - - class WithoutCompareDefined - include Comparable - end - - class CompareCallingSuper - include Comparable - - attr_reader :calls - - def initialize - @calls = 0 - end - - def <=>(other) - @calls += 1 - super(other) - end - end -end diff --git a/spec/rubyspec/core/comparable/gt_spec.rb b/spec/rubyspec/core/comparable/gt_spec.rb deleted file mode 100644 index c4739bcf2a..0000000000 --- a/spec/rubyspec/core/comparable/gt_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Comparable#>" do - it "calls #<=> on self with other and returns true if #<=> returns any Integer greater than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(1) - (a > b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(0.1) - (a > b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(10000000) - (a > b).should == true - end - - it "returns false if calling #<=> on self returns 0 or any Integer less than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(10) - - a.should_receive(:<=>).any_number_of_times.and_return(0) - (a > b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(0.0) - (a > b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(-1.0) - (a > b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(-10000000) - (a > b).should == false - end - - it "raises an ArgumentError if calling #<=> on self returns nil" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(nil) - lambda { (a > b) }.should raise_error(ArgumentError) - end -end diff --git a/spec/rubyspec/core/comparable/gte_spec.rb b/spec/rubyspec/core/comparable/gte_spec.rb deleted file mode 100644 index c9d8264ee6..0000000000 --- a/spec/rubyspec/core/comparable/gte_spec.rb +++ /dev/null @@ -1,47 +0,0 @@ -require File.expand_path('../fixtures/classes', __FILE__) -require File.expand_path('../../../spec_helper', __FILE__) - -describe "Comparable#>=" do - it "calls #<=> on self with other and returns true if #<=> returns 0 or any Integer greater than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(0) - (a >= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(0.0) - (a >= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(1) - (a >= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(0.1) - (a >= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(10000000) - (a >= b).should == true - end - - it "returns false if calling #<=> on self returns any Integer less than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(10) - - - a.should_receive(:<=>).any_number_of_times.and_return(-0.1) - (a >= b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(-1.0) - (a >= b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(-10000000) - (a >= b).should == false - end - - it "raises an ArgumentError if calling #<=> on self returns nil" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(nil) - lambda { (a >= b) }.should raise_error(ArgumentError) - end -end diff --git a/spec/rubyspec/core/comparable/lt_spec.rb b/spec/rubyspec/core/comparable/lt_spec.rb deleted file mode 100644 index e9e76360b9..0000000000 --- a/spec/rubyspec/core/comparable/lt_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Comparable#<" do - it "calls #<=> on self with other and returns true if #<=> returns any Integer less than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(-1) - (a < b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(-0.1) - (a < b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(-10000000) - (a < b).should == true - end - - it "returns false if calling #<=> on self returns 0 or any Integer greater than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(10) - - a.should_receive(:<=>).any_number_of_times.and_return(0) - (a < b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(0.0) - (a < b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(1.0) - (a < b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(10000000) - (a < b).should == false - end - - it "raises an ArgumentError if calling #<=> on self returns nil" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(nil) - lambda { (a < b) }.should raise_error(ArgumentError) - end -end diff --git a/spec/rubyspec/core/comparable/lte_spec.rb b/spec/rubyspec/core/comparable/lte_spec.rb deleted file mode 100644 index 96ed38ecd5..0000000000 --- a/spec/rubyspec/core/comparable/lte_spec.rb +++ /dev/null @@ -1,46 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Comparable#<=" do - it "calls #<=> on self with other and returns true if #<=> returns 0 or any Integer less than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(0) - (a <= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(0.0) - (a <= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(-1) - (a <= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(-0.1) - (a <= b).should == true - - a.should_receive(:<=>).any_number_of_times.and_return(-10000000) - (a <= b).should == true - end - - it "returns false if calling #<=> on self returns any Integer greater than 0" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(10) - - a.should_receive(:<=>).any_number_of_times.and_return(0.1) - (a <= b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(1.0) - (a <= b).should == false - - a.should_receive(:<=>).any_number_of_times.and_return(10000000) - (a <= b).should == false - end - - it "raises an ArgumentError if calling #<=> on self returns nil" do - a = ComparableSpecs::Weird.new(0) - b = ComparableSpecs::Weird.new(20) - - a.should_receive(:<=>).any_number_of_times.and_return(nil) - lambda { (a <= b) }.should raise_error(ArgumentError) - end -end |
