Commit d3bf659b authored by Daniel Bovensiepen's avatar Daniel Bovensiepen

Add more kernel tests

parent 6410cdf3
......@@ -7,13 +7,20 @@ end
assert('Kernel.block_given?', '15.3.1.2.2') do
def bg_try(&b)
if block_given?
if Kernel.block_given?
yield
else
"no block"
end
end
(Kernel.block_given? == false) && (bg_try == "no block") && ((bg_try { "block" }) == "block") && ((bg_try do "block" end) == "block")
(Kernel.block_given? == false) and
# test without block
(bg_try == "no block") and
# test with block
((bg_try { "block" }) == "block") and
# test with block
((bg_try do "block" end) == "block")
end
assert('Kernel.global_variables', '15.3.1.2.4') do
......@@ -32,6 +39,11 @@ assert('Kernel.lambda', '15.3.1.2.6') do
l.call and l.class == Proc
end
# Not implemented at the moment
#assert('Kernel.local_variables', '15.3.1.2.7') do
# Kernel.local_variables.class == Array
#end
assert('Kernel.loop', '15.3.1.2.8') do
i = 0
......@@ -58,17 +70,61 @@ assert('Kernel.puts', '15.3.1.2.11') do
true
end
# TODO fails at the moment without arguments
assert('Kernel.raise', '15.3.1.2.12') do
e_list = []
begin
raise RuntimeError.new
Kernel.raise
rescue => e
e_list << e
end
begin
Kernel.raise RuntimeError.new
rescue => e
e_list << e
end
e_list[0].class == RuntimeError
# result without argument
e_list[0].class == RuntimeError and
# result with RuntimeError argument
e_list[1].class == RuntimeError
end
assert('Kernel#__id__', '15.3.1.3.3') do
__id__.class == Fixnum
end
assert('Kernel#__send__', '15.3.1.3.4') do
# test with block
l = __send__(:lambda) do
true
end
l.call and l.class == Proc and
# test with argument
__send__(:respond_to?, :nil?) and
# test without argument and without block
__send__(:public_methods).class == Array
end
assert('Kernel#block_given?', '15.3.1.3.6') do
def bg_try(&b)
if block_given?
yield
else
"no block"
end
end
(block_given? == false) and
(bg_try == "no block") and
((bg_try { "block" }) == "block") and
((bg_try do "block" end) == "block")
end
assert('Kernel#class', '15.3.1.3.7') do
Kernel.class == Module
end
assert('Kernel#clone', '15.3.1.3.8') do
......@@ -95,8 +151,10 @@ assert('Kernel#clone', '15.3.1.3.8') do
a.set(2)
c = a.clone
a.get == 2 && b.get == 1 && c.get == 2 &&
a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == true
a.get == 2 and b.get == 1 and c.get == 2 &&
a.respond_to?(:test) == true and
b.respond_to?(:test) == false and
c.respond_to?(:test) == true
end
assert('Kernel#dup', '15.3.1.3.9') do
......@@ -123,14 +181,53 @@ assert('Kernel#dup', '15.3.1.3.9') do
a.set(2)
c = a.dup
a.get == 2 && b.get == 1 && c.get == 2 &&
a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == false
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
end
assert('global_variables', '15.3.1.3.14') do
global_variables.class == Array
end
assert('Kernel#hash', '15.3.1.3.15') do
hash == hash
end
assert('inspect', '15.3.1.3.17') do
inspect.class == String
end
assert('Kernel#instance_variables', '15.3.1.3.23') do
instance_variables.class == Array
end
assert('Kernel#is_a?', '15.3.1.3.24') do
is_a?(Kernel) and not is_a?(Array)
end
assert('Kernel#iterator?', '15.3.1.3.25') do
iterator? == false
end
assert('Kernel#kind_of?', '15.3.1.3.26') do
kind_of?(Kernel) and not kind_of?(Array)
end
assert('Kernel#lambda', '15.3.1.3.27') do
l = lambda do
true
end
l.call and l.class == Proc
end
# Not implemented yet
#assert('Kernel#local_variables', '15.3.1.3.28') do
# local_variables.class == Array
#end
assert('Kernel#loop', '15.3.1.3.29') do
i = 0
......@@ -150,6 +247,10 @@ assert('Kernel#nil?', '15.3.1.3.32') do
nil.nil? == true
end
assert('Kernel#object_id', '15.3.1.3.33') do
object_id.class == Fixnum
end
assert('Kernel#private_methods', '15.3.1.3.36') do
private_methods.class == Array
end
......@@ -162,6 +263,27 @@ assert('Kernel#public_methods', '15.3.1.3.38') do
public_methods.class == Array
end
assert('Kernel.raise', '15.3.1.3.40') do
e_list = []
begin
raise
rescue => e
e_list << e
end
begin
raise RuntimeError.new
rescue => e
e_list << e
end
# result without argument
e_list[0].class == RuntimeError and
# result with RuntimeError argument
e_list[1].class == RuntimeError
end
assert('Kernel#respond_to?', '15.3.1.3.43') do
respond_to? :nil?
end
......@@ -171,6 +293,7 @@ assert('Kernel#send', '15.3.1.3.44') do
l = send(:lambda) do
true
end
l.call and l.class == Proc and
# test with argument
send(:respond_to?, :nil?) and
......
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