mirror of https://gitee.com/bigwinds/arangodb
124 lines
2.7 KiB
Ruby
124 lines
2.7 KiB
Ruby
##
|
|
# Module ISO Test
|
|
|
|
assert('Module', '15.2.2') do
|
|
Module.class == Class
|
|
end
|
|
|
|
assert('Module superclass', '15.2.2.2') do
|
|
Module.superclass == Object
|
|
end
|
|
|
|
# TODO not implemented ATM assert('Module.constants', '15.2.2.3.1') do
|
|
|
|
# TODO not implemented ATM assert('Module.nesting', '15.2.2.3.2') do
|
|
|
|
assert('Module#ancestors', '15.2.2.4.9') do
|
|
r = String.ancestors
|
|
r.class == Array and r.include?(String) and r.include?(Object)
|
|
end
|
|
|
|
assert('Module#append_features', '15.2.2.4.10') do
|
|
module Test4AppendFeatures
|
|
def self.append_features(mod)
|
|
Test4AppendFeatures2.const_set(:Const4AppendFeatures2, mod)
|
|
end
|
|
end
|
|
module Test4AppendFeatures2
|
|
include Test4AppendFeatures
|
|
end
|
|
|
|
Test4AppendFeatures2.const_get(:Const4AppendFeatures2) == Test4AppendFeatures2
|
|
end
|
|
|
|
assert('Module#const_defined?', '15.2.2.4.20') do
|
|
module Test4ConstDefined
|
|
Const4Test4ConstDefined = true
|
|
end
|
|
|
|
Test4ConstDefined.const_defined?(:Const4Test4ConstDefined) and
|
|
not Test4ConstDefined.const_defined?(:NotExisting)
|
|
end
|
|
|
|
assert('Module#const_get', '15.2.2.4.21') do
|
|
module Test4ConstGet
|
|
Const4Test4ConstGet = 42
|
|
end
|
|
|
|
Test4ConstGet.const_get(:Const4Test4ConstGet) == 42
|
|
end
|
|
|
|
assert('Module.const_missing', '15.2.2.4.22') do
|
|
e1 = nil
|
|
|
|
module Test4ConstMissing
|
|
def self.const_missing(sym)
|
|
42 # the answer to everything
|
|
end
|
|
end
|
|
|
|
Test4ConstMissing.const_get(:ConstDoesntExist) == 42
|
|
end
|
|
|
|
assert('Module#const_get', '15.2.2.4.23') do
|
|
module Test4ConstSet
|
|
Const4Test4ConstSet = 42
|
|
end
|
|
|
|
Test4ConstSet.const_set(:Const4Test4ConstSet, 23)
|
|
Test4ConstSet.const_get(:Const4Test4ConstSet) == 23
|
|
end
|
|
|
|
assert('Module#include', '15.2.2.4.27') do
|
|
module Test4Include
|
|
Const4Include = 42
|
|
end
|
|
module Test4Include2
|
|
include Test4Include
|
|
end
|
|
|
|
Test4Include2.const_get(:Const4Include) == 42
|
|
end
|
|
|
|
assert('Module#included', '15.2.2.4.29') do
|
|
module Test4Included
|
|
Const4Included = 42
|
|
def self.included mod
|
|
Test4Included.const_set(:Const4Included2, mod)
|
|
end
|
|
end
|
|
module Test4Included2
|
|
include Test4Included
|
|
end
|
|
|
|
Test4Included2.const_get(:Const4Included) == 42 and
|
|
Test4Included2.const_get(:Const4Included2) == Test4Included2
|
|
end
|
|
|
|
assert('Module#included_modules', '15.2.2.4.30') do
|
|
module Test4includedModules
|
|
end
|
|
module Test4includedModules2
|
|
include Test4includedModules
|
|
end
|
|
|
|
r = Test4includedModules2.included_modules
|
|
r.class == Array and r.include?(Test4includedModules)
|
|
end
|
|
|
|
# Not ISO specified
|
|
|
|
assert('Module#to_s') do
|
|
module Test4to_sModules
|
|
end
|
|
|
|
Test4to_sModules.to_s == 'Test4to_sModules'
|
|
end
|
|
|
|
assert('Module#inspect') do
|
|
module Test4to_sModules
|
|
end
|
|
|
|
Test4to_sModules.inspect == 'Test4to_sModules'
|
|
end
|