summaryrefslogtreecommitdiff
path: root/test/ruby/test_insns_leaf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_insns_leaf.rb')
-rw-r--r--test/ruby/test_insns_leaf.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/ruby/test_insns_leaf.rb b/test/ruby/test_insns_leaf.rb
new file mode 100644
index 0000000000..9c9a4324cb
--- /dev/null
+++ b/test/ruby/test_insns_leaf.rb
@@ -0,0 +1,46 @@
+# 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