mirror of https://gitee.com/bigwinds/arangodb
127 lines
1.9 KiB
Ruby
127 lines
1.9 KiB
Ruby
##
|
|
# Class ISO Test
|
|
|
|
assert('Class', '15.2.3') do
|
|
Class.class == Class
|
|
end
|
|
|
|
# Not ISO specified
|
|
|
|
assert('Class 1') do
|
|
class C; end
|
|
C.class == Class
|
|
end
|
|
|
|
assert('Class 2') do
|
|
class C; end
|
|
C.new.class == C
|
|
end
|
|
|
|
assert('Class 3') do
|
|
class C; end
|
|
C.new.class.class == Class
|
|
end
|
|
|
|
assert('Class 4') do
|
|
class A; end
|
|
class C < A; end
|
|
C.class == Class
|
|
end
|
|
|
|
assert('Class 5') do
|
|
class A; end
|
|
class C < A; end
|
|
C.new.class == C
|
|
end
|
|
|
|
assert('Class 6') do
|
|
class A; end
|
|
class C < A; end
|
|
C.new.class.class == Class
|
|
end
|
|
|
|
assert('Class Module 1') do
|
|
module M; end
|
|
M.class == Module
|
|
end
|
|
|
|
assert('Class Module 2') do
|
|
module M; end
|
|
class C; include M; end
|
|
C.new.class == C
|
|
end
|
|
|
|
# nested class
|
|
assert('Class Nested 1') do
|
|
class A; end
|
|
class A::B; end
|
|
A::B == A::B
|
|
end
|
|
|
|
assert('Class Nested 2') do
|
|
class A; end
|
|
class A::B; end
|
|
A::B.new.class == A::B
|
|
end
|
|
|
|
assert('Class Nested 3') do
|
|
class A; end
|
|
class A::B; end
|
|
A::B.new.class.class == Class
|
|
end
|
|
|
|
assert('Class Nested 4') do
|
|
class A; end
|
|
class A::B; end
|
|
class A::B::C; end
|
|
A::B::C == A::B::C
|
|
end
|
|
|
|
assert('Class Nested 5') do
|
|
class A; end
|
|
class A::B; end
|
|
class A::B::C; end
|
|
A::B::C.class == Class
|
|
end
|
|
|
|
assert('Class Nested 6') do
|
|
class A; end
|
|
class A::B; end
|
|
class A::B::C; end
|
|
A::B::C.new.class == A::B::C
|
|
end
|
|
|
|
assert('Class Nested 7') do
|
|
class A; end
|
|
class A::B; end
|
|
class A::B2 < A::B; end
|
|
A::B2 == A::B2
|
|
end
|
|
|
|
assert('Class Nested 8') do
|
|
class A; end
|
|
class A::B; end
|
|
class A::B2 < A::B; end
|
|
A::B2.class == Class
|
|
end
|
|
|
|
assert('Class Colon 1') do
|
|
class A; end; A::C = 1; A::C == 1
|
|
end
|
|
|
|
assert('Class Colon 2') do
|
|
class A; class ::C; end end; C == C
|
|
end
|
|
|
|
assert('Class Colon 3') do
|
|
class A; class ::C; end end; C.class == Class
|
|
end
|
|
|
|
assert('Class Dup 1') do
|
|
class C; end; C.dup.class == Class
|
|
end
|
|
|
|
assert('Class Dup 2') do
|
|
module M; end; M.dup.class == Module
|
|
end
|