mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'test/unit'
 | 
						|
require_relative 'envutil.rb'
 | 
						|
 | 
						|
class TestCase < Test::Unit::TestCase
 | 
						|
  def test_case
 | 
						|
    case 5
 | 
						|
    when 1, 2, 3, 4, 6, 7, 8
 | 
						|
      assert(false)
 | 
						|
    when 5
 | 
						|
      assert(true)
 | 
						|
    end
 | 
						|
 | 
						|
    case 5
 | 
						|
    when 5
 | 
						|
      assert(true)
 | 
						|
    when 1..10
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    case 5
 | 
						|
    when 1..10
 | 
						|
      assert(true)
 | 
						|
    else
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    case 5
 | 
						|
    when 5
 | 
						|
      assert(true)
 | 
						|
    else
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    case "foobar"
 | 
						|
    when /^f.*r$/
 | 
						|
      assert(true)
 | 
						|
    else
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    case
 | 
						|
    when true
 | 
						|
      assert(true)
 | 
						|
    when false, nil
 | 
						|
      assert(false)
 | 
						|
    else
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    case "+"
 | 
						|
    when *%w/. +/
 | 
						|
      assert(true)
 | 
						|
    else
 | 
						|
      assert(false)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_deoptimization
 | 
						|
    assert_in_out_err(['-e', <<-EOS], '', %w[42], [])
 | 
						|
      class Symbol; undef ===; def ===(o); p 42; true; end; end; case :foo; when :foo; end
 | 
						|
    EOS
 | 
						|
 | 
						|
    assert_in_out_err(['-e', <<-EOS], '', %w[42], [])
 | 
						|
      class Fixnum; undef ===; def ===(o); p 42; true; end; end; case 1; when 1; end
 | 
						|
    EOS
 | 
						|
  end
 | 
						|
end
 |