* 2022-01-18 [ci skip]
[ruby-80x24.org.git] / test / ruby / test_insns_leaf.rb
blob9c9a4324cbf8c8c5ece082f365ee7f584a627010
1 # frozen_string_literal: false
2 require 'test/unit'
4 class TestInsnsLeaf < Test::Unit::TestCase
5   require "set"
7   class Id
8     attr_reader :db_id
9     def initialize(db_id)
10       @db_id = db_id
11     end
13     def ==(other)
14       other.class == self.class && other.db_id == db_id
15     end
16     alias_method :eql?, :==
18     def hash
19       10
20     end
22     def <=>(other)
23       db_id <=> other.db_id if other.is_a?(self.class)
24     end
25   end
27   class Namespace
28     IDS = Set[
29       Id.new(1).freeze,
30       Id.new(2).freeze,
31       Id.new(3).freeze,
32       Id.new(4).freeze,
33     ].freeze
35     class << self
36       def test?(id)
37         IDS.include?(id)
38       end
39     end
40   end
42   def test_insns_leaf
43     assert Namespace.test?(Id.new(1)), "IDS should include 1"
44     assert !Namespace.test?(Id.new(5)), "IDS should not include 5"
45   end
46 end