diff options
Diffstat (limited to 'trunk/test/ruby/test_basicinstructions.rb')
-rw-r--r-- | trunk/test/ruby/test_basicinstructions.rb | 628 |
1 files changed, 0 insertions, 628 deletions
diff --git a/trunk/test/ruby/test_basicinstructions.rb b/trunk/test/ruby/test_basicinstructions.rb deleted file mode 100644 index 6ac93e037a..0000000000 --- a/trunk/test/ruby/test_basicinstructions.rb +++ /dev/null @@ -1,628 +0,0 @@ -require 'test/unit' - -ConstTest = 3 -class Class - alias _remove_const remove_const - public :_remove_const -end - -class TestBasicInstructions < Test::Unit::TestCase - - def test_immediates - assert_equal((1==1), true) - assert_equal((1==2), false) - assert_equal [][0], nil - assert_equal "sym".intern, :sym - assert_equal "sym".intern, :"sym" - assert_equal 1234 + 0, 1234 - assert_equal 1234, 1_2_3_4 - assert_equal 41, 0b0101001 - assert_equal 420, 0644 - assert_equal 18, 0x12 - assert_equal 123456789012345678901234567890 + 0, - 123456789012345678901234567890 - assert_equal 1.234 + 0.0, 1.234 - end - - def test_self - assert_equal self, self - assert_equal false, (self == false) # Qfalse==0 in C - assert_equal false, (self == nil) - assert_equal false, (self == 0) - end - - def test_string - expected = "str" + "ing" - assert_equal expected, 'string' - assert_equal expected, "string" - assert_equal expected, %q(string) - assert_equal expected, %Q(string) - assert_equal expected, %(string) - end - - def test_dstring - assert_equal "2", "#{1+1}" - s = "OK" - assert_equal "OK", "#{s}" - assert_equal "OKx", "#{s}x" - assert_equal "xOK", "x#{s}" - assert_equal "xOKx", "x#{s}x" - end - - def test_dsym - assert_equal :a3c, :"a#{1+2}c" - s = "sym" - assert_equal :sym, :"#{s}" - assert_equal :sym, :"#{"#{"#{s}"}"}" - end - - def test_xstr - assert_equal 'hoge', `echo hoge`.chomp - assert_equal '3', `echo #{1 + 2}`.chomp - hoge = 'huga' - assert_equal 'huga', `echo #{hoge}`.chomp - end - - def test_regexp - assert_equal /test/, /test/ - assert_equal 'test', /test/.source - assert_equal 'TEST', /TEST/.source - assert_equal true, !!(/test/ =~ 'test') - assert_equal false, !!(/test/ =~ 'does not match') - - re = /test/ - assert_equal re, re - assert_equal 'test', re.source - assert_equal true, !!(re =~ 'test') - assert_equal false, !!(re =~ 'does not match') - - assert_equal /x#{1+1}x/, /x#{1+1}x/ - s = "OK" - assert_equal /x#{s}x/, /x#{s}x/ - assert_equal true, !!(/x#{s}x/ =~ "xOKx") - assert_equal false, !!(/x#{s}x/ =~ "does not match") - - s = "OK" - prev = nil - 3.times do - assert_equal prev.object_id, (prev ||= /#{s}/o).object_id if prev - end - end - - def test_array - assert_equal [], [] - assert_equal 0, [].size - assert_equal [1, 2, 3], [1, 2, 3] - assert_equal [3, 7, 11], [1+2, 3+4, 5+6] - assert_equal [[1], [2], [3]], [[1], [2], [3]] - - a = [1, 2, 3] - assert_equal 1, a[0] - assert_equal 2, a[1] - assert_equal 3, a[2] - assert_nil a[3] - - a = %w( a b c ) - assert_equal 'a', a[0] - assert_equal 'b', a[1] - assert_equal 'c', a[2] - assert_nil a[3] - end - - def test_hash - assert_equal({}, {}) - assert_equal({1=>2}, {1=>2}) - assert_equal({1=>2, 3=>4}, {1=>2, 3=>4}) - assert_equal({1=>2, 3=>4}, {3=>4, 1=>2}) - # assert_equal({1=>2, 3=>4}, {1,2, 3,4}) # 1.9 doesn't support - assert_equal({"key"=>"val"}, {"key"=>"val"}) - end - - def test_range - assert_equal((1..3), (1..3)) - assert_equal((1...3), (1...3)) - assert_not_equal((1...3), (1..3)) - assert_not_equal((1..3), (1...3)) - assert_equal((1..3), (1..2+1)) - assert_equal((1...3), (1...2+1)) - assert_equal(('a'..'z'), ('a'..'z')) - end - - def test_not - assert_equal true, !nil - assert_equal true, !false - assert_equal false, !true - assert_equal false, !3 - assert_equal false, !(1+1) - - assert_equal false, !!nil - assert_equal false, !!false - assert_equal true, !!true - assert_equal true, !!3 - assert_equal true, !!(1+1) - - assert_equal true, (not nil) - assert_equal true, (not false) - assert_equal false, (not true) - assert_equal false, (not 3) - assert_equal false, (not (1 + 1)) - - assert_equal false, (not not nil) - assert_equal false, (not not false) - assert_equal true, (not not true) - assert_equal true, (not not 3) - assert_equal true, (not not (1+1)) - end - - def test_local_variable - a = 7 - assert_equal 7, a - assert_equal a, a - b = 17 - assert_equal 7, a - assert_equal 17, b - assert_equal a, a - assert_equal b, b - assert_not_equal a, b - assert_not_equal b, a - a = b - assert_equal 17, a - assert_equal 17, b - assert_equal a, a - assert_equal b, b - assert_equal a, b - assert_equal b, a - c = 28 - assert_equal 17, a - assert_equal 17, b - assert_equal 28, c - assert_equal a, a - assert_equal b, b - assert_equal a, b - assert_equal c, c - assert_not_equal a, c - assert_not_equal b, c - a = b = c - assert_equal 28, a - assert_equal 28, b - assert_equal 28, c - assert_equal a, a - assert_equal b, b - assert_equal a, b - assert_equal b, a - assert_equal a, c - assert_equal c, a - assert_equal b, c - assert_equal c, b - - a = 1 - b = 2 - c = 3 - set_lvar_in_another_method - assert_equal 1, a - assert_equal 2, b - assert_equal 3, c - end - - def set_lvar_in_another_method - assert_raise(NameError) { a } - assert_raise(NameError) { b } - assert_raise(NameError) { c } - a = "NOT OK" - b = "NOT OK" - c = "NOT OK" - end - - class Const - $Const = self - C = 'Const::C' - def self.c() C end - def c() C end - - class A - C = 'Const::A::C' - def self.c() C end - def c() C end - CC = 'Const::A::CC' - def self.cc() CC end - def cc() CC end - - class B - C = 'Const::A::B::C' - def self.c() C end - def c() C end - def self.cc() CC end - def cc() CC end - end - end - - class AA < A - def self.cc() CC end - def cc() CC end - end - - class AAA < AA - def self.cc() CC end - def cc() CC end - end - end - C = 0 - - def test_const_path - do_test_const_path - do_test_const_path - do_test_const_path - end - - def do_test_const_path - assert_equal 0, C - assert_equal 0, C - assert_equal 3, ::ConstTest - assert_equal 3, ::ConstTest - assert_equal $Const, Const - - assert_equal 'Const::C', Const::C - assert_equal 'Const::C', Const::C - assert_equal 'Const::A::C', Const::A::C - assert_equal 'Const::A::C', Const::A::C - assert_equal 'Const::A::B::C', Const::A::B::C - assert_equal 'Const::A::B::C', Const::A::B::C - - Const::A::B._remove_const :C - assert_equal 'Const::C', Const::C - assert_equal 'Const::A::C', Const::A::C - assert_raise(NameError) { Const::A::B::C } - - Const::A._remove_const :C - assert_equal 'Const::C', Const::C - assert_raise(NameError) { Const::A::C } - assert_raise(NameError) { Const::A::B::C } - - Const._remove_const :C - assert_raise(NameError) { Const::C } - assert_raise(NameError) { Const::A::C } - assert_raise(NameError) { Const::A::B::C } - - Const::A.const_set :C, 'Const::A::C' - assert_raise(NameError) { Const::C } - assert_equal 'Const::A::C', Const::A::C - assert_raise(NameError) { Const::A::B::C } - - Const::A::B.const_set :C, 'Const::A::B::C' - assert_raise(NameError) { Const::C } - assert_equal 'Const::A::C', Const::A::C - assert_equal 'Const::A::B::C', Const::A::B::C - - Const.const_set :C, 'Const::C' - assert_equal 'Const::C', Const::C - assert_equal 'Const::A::C', Const::A::C - assert_equal 'Const::A::B::C', Const::A::B::C - end - - def test_const_cref - do_test_const_cref - do_test_const_cref - do_test_const_cref - end - - def do_test_const_cref - assert_equal 'Const::C', Const.new.c - assert_equal 'Const::A::C', Const::A.new.c - assert_equal 'Const::A::B::C', Const::A::B.new.c - - assert_equal 'Const::C', Const.c - assert_equal 'Const::A::C', Const::A.c - assert_equal 'Const::A::B::C', Const::A::B.c - - Const::A::B._remove_const :C - assert_equal 'Const::C', Const.c - assert_equal 'Const::A::C', Const::A.c - assert_equal 'Const::A::C', Const::A::B.c - assert_equal 'Const::C', Const.new.c - assert_equal 'Const::A::C', Const::A.new.c - assert_equal 'Const::A::C', Const::A::B.new.c - - Const::A._remove_const :C - assert_equal 'Const::C', Const.c - assert_equal 'Const::C', Const::A.c - assert_equal 'Const::C', Const::A::B.c - assert_equal 'Const::C', Const.new.c - assert_equal 'Const::C', Const::A.new.c - assert_equal 'Const::C', Const::A::B.new.c - - Const::A::B.const_set :C, 'Const::A::B::C' - assert_equal 'Const::C', Const.c - assert_equal 'Const::C', Const::A.c - assert_equal 'Const::A::B::C', Const::A::B.c - assert_equal 'Const::C', Const.new.c - assert_equal 'Const::C', Const::A.new.c - assert_equal 'Const::A::B::C', Const::A::B.new.c - - Const::A.const_set :C, 'Const::A::C' - assert_equal 'Const::C', Const.c - assert_equal 'Const::A::C', Const::A.c - assert_equal 'Const::A::B::C', Const::A::B.c - assert_equal 'Const::C', Const.new.c - assert_equal 'Const::A::C', Const::A.new.c - assert_equal 'Const::A::B::C', Const::A::B.new.c - ensure - # reset - Const.const_set :C, 'Const::C' unless Const.const_defined?(:C) - Const::A.const_set :C, 'Const::A::C' unless Const::A.const_defined?(:C) - Const::A::B.const_set :C, 'Const::A::B::C' unless Const::A::B.const_defined?(:C) - end - - def test_const_inherit - do_test_const_inherit - do_test_const_inherit - do_test_const_inherit - end - - def do_test_const_inherit - assert_equal 'Const::A::CC', Const::A.cc - assert_equal 'Const::A::CC', Const::AA.cc - assert_equal 'Const::A::CC', Const::AAA.cc - assert_equal 'Const::A::CC', Const::A.new.cc - assert_equal 'Const::A::CC', Const::AA.new.cc - assert_equal 'Const::A::CC', Const::AAA.new.cc - - Const::AA.const_set :CC, 'Const::AA::CC' - assert_equal 'Const::A::CC', Const::A.cc - assert_equal 'Const::AA::CC', Const::AA.cc - assert_equal 'Const::AA::CC', Const::AAA.cc - assert_equal 'Const::A::CC', Const::A.new.cc - assert_equal 'Const::AA::CC', Const::AA.new.cc - assert_equal 'Const::AA::CC', Const::AAA.new.cc - - Const::AAA.const_set :CC, 'Const::AAA::CC' - assert_equal 'Const::A::CC', Const::A.cc - assert_equal 'Const::AA::CC', Const::AA.cc - assert_equal 'Const::AAA::CC', Const::AAA.cc - assert_equal 'Const::A::CC', Const::A.new.cc - assert_equal 'Const::AA::CC', Const::AA.new.cc - assert_equal 'Const::AAA::CC', Const::AAA.new.cc - - Const::AA._remove_const :CC - assert_equal 'Const::A::CC', Const::A.cc - assert_equal 'Const::A::CC', Const::AA.cc - assert_equal 'Const::AAA::CC', Const::AAA.cc - assert_equal 'Const::A::CC', Const::A.new.cc - assert_equal 'Const::A::CC', Const::AA.new.cc - assert_equal 'Const::AAA::CC', Const::AAA.new.cc - - Const::AAA._remove_const :CC - assert_equal 'Const::A::CC', Const::A.cc - assert_equal 'Const::A::CC', Const::AA.cc - assert_equal 'Const::A::CC', Const::AAA.cc - assert_equal 'Const::A::CC', Const::A.new.cc - assert_equal 'Const::A::CC', Const::AA.new.cc - assert_equal 'Const::A::CC', Const::AAA.new.cc - end - - def test_global_variable - $gvar1 = 1 - assert_equal 1, $gvar1 - $gvar1 = 2 - assert_equal 2, $gvar1 - $gvar2 = 77 - assert_equal 2, $gvar1 - assert_equal 77, $gvar2 - $gvar2 = $gvar1 - assert_equal 2, $gvar1 - assert_equal 2, $gvar2 - $gvar1 = 1 - assert_equal 1, $gvar1 - assert_equal 2, $gvar2 - set_gvar_in_another_method - assert_equal "OK1", $gvar1 - assert_equal "OK2", $gvar2 - end - - def set_gvar_in_another_method - assert_equal 1, $gvar1 - assert_equal 2, $gvar2 - $gvar1 = "OK1" - $gvar2 = "OK2" - end - - class CVarA - @@cv = 'CVarA@@cv' - def self.cv() @@cv end - def self.cv=(v) @@cv = v end - class << self - def cv2() @@cv end - end - def cv() @@cv end - def cv=(v) @@cv = v end - end - - class CVarB < CVarA - def self.cvB() @@cv end - def self.cvB=(v) @@cv = v end - class << self - def cvB2() @@cv end - end - def cvB() @@cv end - def cvB=(v) @@cv = v end - end - - def test_class_variable - assert_equal 'CVarA@@cv', CVarA.cv - assert_equal 'CVarA@@cv', CVarA.cv2 - assert_equal 'CVarA@@cv', CVarA.new.cv - CVarA.cv = 'singleton' - assert_equal 'singleton', CVarA.cv - assert_equal 'singleton', CVarA.cv2 - assert_equal 'singleton', CVarA.new.cv - CVarA.new.cv = 'instance' - assert_equal 'instance', CVarA.cv - assert_equal 'instance', CVarA.cv2 - assert_equal 'instance', CVarA.new.cv - - CVarA.cv = 'CVarA@@cv' - CVarB.cv = 'B/singleton' - assert_equal 'B/singleton', CVarB.cv - assert_equal 'B/singleton', CVarB.cv2 - assert_equal 'B/singleton', CVarB.new.cv - assert_equal 'B/singleton', CVarA.cv - assert_equal 'B/singleton', CVarA.cv2 - assert_equal 'B/singleton', CVarA.new.cv - CVarB.new.cv = 'B/instance' - assert_equal 'B/instance', CVarB.cv - assert_equal 'B/instance', CVarB.cv2 - assert_equal 'B/instance', CVarB.new.cv - assert_equal 'B/instance', CVarA.cv - assert_equal 'B/instance', CVarA.cv2 - assert_equal 'B/instance', CVarA.new.cv - - CVarA.cv = 'CVarA@@cv' - assert_equal('CVarA@@cv', CVarB.cvB) - assert_equal('CVarA@@cv', CVarB.cvB2) - assert_equal('CVarA@@cv', CVarB.new.cvB) - CVarB.cvB = 'B/singleton' - assert_equal 'B/singleton', CVarB.cvB - assert_equal 'B/singleton', CVarB.cvB2 - assert_equal 'B/singleton', CVarB.new.cvB - assert_equal 'B/singleton', CVarA.cv - assert_equal 'B/singleton', CVarA.cv2 - assert_equal 'B/singleton', CVarA.new.cv - CVarB.new.cvB = 'B/instance' - assert_equal 'B/instance', CVarB.cvB - assert_equal 'B/instance', CVarB.cvB2 - assert_equal 'B/instance', CVarB.new.cvB - assert_equal 'B/instance', CVarA.cv - assert_equal 'B/instance', CVarA.cv2 - assert_equal 'B/instance', CVarA.new.cv - - CVarA.cv = 'CVarA@@cv' - CVarB.cvB = 'CVarB@@cv' - end - - class OP - attr_accessor :x - end - - def test_opassign - x = nil - x ||= 1 - assert_equal 1, x - x &&= 2 - assert_equal 2, x - x ||= 3 - assert_equal 2, x - x &&= 4 - assert_equal 4, x - - y = OP.new - y.x = nil - y.x ||= 1 - assert_equal 1, y.x - y.x &&= 2 - assert_equal 2, y.x - y.x ||= 3 - assert_equal 2, y.x - y.x &&= 4 - assert_equal 4, y.x - - z = OP.new - z.x = y - z.x.x = nil - z.x.x ||= 1 - assert_equal 1, z.x.x - z.x.x &&= 2 - assert_equal 2, z.x.x - z.x.x ||= 3 - assert_equal 2, z.x.x - z.x.x &&= 4 - assert_equal 4, z.x.x - - a = [] - a[0] = nil - a[0] ||= 1 - assert_equal 1, a[0] - a[0] &&= 2 - assert_equal 2, a[0] - a[0] ||= 3 - assert_equal 2, a[0] - a[0] &&= 4 - assert_equal 4, a[0] - end - - def test_backref - /re/ =~ 'not match' - assert_nil $~ - assert_nil $` - assert_nil $& - assert_nil $' - assert_nil $+ - assert_nil $1 - assert_nil $2 - assert_nil $3 - assert_nil $4 - assert_nil $5 - assert_nil $6 - assert_nil $7 - assert_nil $8 - assert_nil $9 - - /(a)(b)(c)(d)(e)(f)(g)(h)(i)/ =~ 'xabcdefghiy' - assert_not_nil $~ - assert_instance_of MatchData, $~ - assert_equal 'abcdefghi', $~[0] - assert_equal 'a', $~[1] - assert_equal 'b', $~[2] - assert_equal 'c', $~[3] - assert_equal 'd', $~[4] - assert_equal 'e', $~[5] - assert_equal 'f', $~[6] - assert_equal 'g', $~[7] - assert_equal 'h', $~[8] - assert_equal 'i', $~[9] - assert_equal 'x', $` - assert_equal 'abcdefghi', $& - assert_equal 'y', $' - assert_equal 'i', $+ - assert_equal 'a', $1 - assert_equal 'b', $2 - assert_equal 'c', $3 - assert_equal 'd', $4 - assert_equal 'e', $5 - assert_equal 'f', $6 - assert_equal 'g', $7 - assert_equal 'h', $8 - assert_equal 'i', $9 - - /re/ =~ 'not match' - assert_nil $~ - assert_nil $` - assert_nil $& - assert_nil $' - assert_nil $+ - assert_nil $1 - assert_nil $2 - assert_nil $3 - assert_nil $4 - assert_nil $5 - assert_nil $6 - assert_nil $7 - assert_nil $8 - assert_nil $9 - end - - def test_array_splat - a = [] - assert_equal [], [*a] - assert_equal [1], [1, *a] - a = [2] - assert_equal [2], [*a] - assert_equal [1, 2], [1, *a] - a = [2, 3] - assert_equal [2, 3], [*a] - assert_equal [1, 2, 3], [1, *a] - - a = nil - assert_equal [], [*a] - assert_equal [1], [1, *a] - end - -end |