Commit d1b131e2 authored by Masaki Muranaka's avatar Masaki Muranaka

Add some tests.

parent e885e59d
......@@ -54,3 +54,18 @@ assert('Comparable#>=', '15.3.3.2.5') do
(Foo.new >= Foo.new) == true
end
assert('Comparable#between?', '15.3.3.2.6') do
class Foo
include Comparable
def <=>(x)
x
end
end
c = Foo.new
c.between?(-1, 1) == false &&
c.between?(-1, -1) == false &&
c.between?( 1, 1) == false &&
c.between?( 1, -1) == true &&
c.between?(0, 0) == true
end
......@@ -155,6 +155,16 @@ assert('Kernel#clone', '15.3.1.3.8') do
a.set(2)
c = a.clone
immutables = [ 1, :foo, true, false, nil ]
error_count = 0
immutables.each do |i|
begin
i.clone
rescue TypeError
error_count += 1
end
end
a.get == 2 and b.get == 1 and c.get == 2 &&
a.respond_to?(:test) == true and
b.respond_to?(:test) == false and
......@@ -185,7 +195,18 @@ assert('Kernel#dup', '15.3.1.3.9') do
a.set(2)
c = a.dup
a.get == 2 and b.get == 1 and c.get == 2 and
immutables = [ 1, :foo, true, false, nil ]
error_count = 0
immutables.each do |i|
begin
i.dup
rescue TypeError
error_count += 1
end
end
error_count == immutables.size and
a.get == 2 and b.get == 1 and c.get == 2 and
a.respond_to?(:test) == true and
b.respond_to?(:test) == false and
c.respond_to?(:test) == false
......
......@@ -297,6 +297,29 @@ assert('Module#remove_method', '15.2.2.4.41') do
not Test4RemoveMethod::Child.instance_methods(false).include? :hello
end
assert('Module.undef_method', '15.2.2.4.42') do
module Test4UndefMethod
class Parent
def hello
end
end
class Child < Parent
def hello
end
end
class GrandChild < Child
end
end
Test4UndefMethod::Child.class_eval{ undef_method :hello }
Test4UndefMethod::Parent.new.respond_to?(:hello) and
not Test4UndefMethod::Child.new.respond_to?(:hello) and
not Test4UndefMethod::GrandChild.new.respond_to?(:hello)
end
# Not ISO specified
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment