mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
47 lines
818 B
Ruby
47 lines
818 B
Ruby
|
# frozen_string_literal: false
|
||
|
require 'test/unit'
|
||
|
|
||
|
class TestInsnsLeaf < Test::Unit::TestCase
|
||
|
require "set"
|
||
|
|
||
|
class Id
|
||
|
attr_reader :db_id
|
||
|
def initialize(db_id)
|
||
|
@db_id = db_id
|
||
|
end
|
||
|
|
||
|
def ==(other)
|
||
|
other.class == self.class && other.db_id == db_id
|
||
|
end
|
||
|
alias_method :eql?, :==
|
||
|
|
||
|
def hash
|
||
|
10
|
||
|
end
|
||
|
|
||
|
def <=>(other)
|
||
|
db_id <=> other.db_id if other.is_a?(self.class)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Namespace
|
||
|
IDS = Set[
|
||
|
Id.new(1).freeze,
|
||
|
Id.new(2).freeze,
|
||
|
Id.new(3).freeze,
|
||
|
Id.new(4).freeze,
|
||
|
].freeze
|
||
|
|
||
|
class << self
|
||
|
def test?(id)
|
||
|
IDS.include?(id)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_insns_leaf
|
||
|
assert Namespace.test?(Id.new(1)), "IDS should include 1"
|
||
|
assert !Namespace.test?(Id.new(5)), "IDS should not include 5"
|
||
|
end
|
||
|
end
|