require 'test/unit' class TestRange < Test::Unit::TestCase def test_range_string # XXX: Is this really the test of Range? assert_equal([], ("a" ... "a").to_a) assert_equal(["a"], ("a" .. "a").to_a) assert_equal(["a"], ("a" ... "b").to_a) assert_equal(["a", "b"], ("a" .. "b").to_a) end def test_evaluation_order arr = [1,2] r = (arr.shift)..(arr.shift) assert_equal(1..2, r, "[ruby-dev:26383]") end class DuckRange def initialize(b,e,excl=false) @begin = b @end = e @excl = excl end attr_reader :begin, :end def exclude_end? @excl end end def test_duckrange assert_equal("bc", "abcd"[DuckRange.new(1,2)]) end end