- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-2.1.1
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-class-ext/test/module.rb
r331 r439 1 assert 'Module#<' do 2 a = Class.new 3 b = Class.new(a) 4 c = Class.new(a) 5 d = Module.new 6 e = Class.new { include d } 7 f = Module.new { include d } 8 9 # compare class to class 10 assert_true b < a 11 assert_false b < b 12 assert_false a < b 13 assert_nil c < b 14 15 # compare class to module 16 assert_true e < d 17 assert_false d < e 18 assert_nil a < d 19 20 # compare module to module 21 assert_true f < d 22 assert_false f < f 23 assert_false d < f 24 25 assert_raise(TypeError) { a < Object.new } 26 end 27 28 assert 'Module#<=' do 29 a = Class.new 30 b = Class.new(a) 31 c = Class.new(a) 32 d = Module.new 33 e = Class.new { include d } 34 f = Module.new { include d } 35 36 # compare class to class 37 assert_true b <= a 38 assert_true b <= b 39 assert_false a <= b 40 assert_nil c <= b 41 42 # compare class to module 43 assert_true e <= d 44 assert_false d <= e 45 assert_nil a <= d 46 47 # compare module to module 48 assert_true f <= d 49 assert_true f <= f 50 assert_false d <= f 51 52 assert_raise(TypeError) { a <= Object.new } 53 end 54 1 55 assert 'Module#name' do 2 module A 3 class B 56 module Outer 57 class Inner; end 58 const_set :SetInner, Class.new 59 end 60 61 assert_equal 'Outer', Outer.name 62 assert_equal 'Outer::Inner', Outer::Inner.name 63 assert_equal 'Outer::SetInner', Outer::SetInner.name 64 65 outer = Module.new do 66 const_set :SetInner, Class.new 67 end 68 Object.const_set :SetOuter, outer 69 70 assert_equal 'SetOuter', SetOuter.name 71 assert_equal 'SetOuter::SetInner', SetOuter::SetInner.name 72 73 mod = Module.new 74 cls = Class.new 75 76 assert_nil mod.name 77 assert_nil cls.name 78 end 79 80 assert 'Module#singleton_class?' do 81 mod = Module.new 82 cls = Class.new 83 scl = (class <<cls; self; end) 84 85 assert_false mod.singleton_class? 86 assert_false cls.singleton_class? 87 assert_true scl.singleton_class? 88 end 89 90 assert 'Module#module_eval' do 91 mod = Module.new 92 mod.class_exec(1,2,3) do |a,b,c| 93 assert_equal([1,2,3], [a,b,c]) 94 def hi 95 "hi" 4 96 end 5 97 end 6 7 assert_nil A::B.singleton_class.name 8 assert_equal 'Fixnum', Fixnum.name 9 assert_equal 'A::B', A::B.name 98 cls = Class.new 99 cls.class_exec(42) do |x| 100 assert_equal(42, x) 101 include mod 102 def hello 103 "hello" 104 end 105 end 106 obj = cls.new 107 assert_equal("hi", obj.hi) 108 assert_equal("hello", obj.hello) 10 109 end
Note:
See TracChangeset
for help on using the changeset viewer.