Sha256: 92f2805739517ef73c02f661b3bbb07828cf6654aa2fedf1dc20cc64271a0bcd
Contents?: true
Size: 1.38 KB
Versions: 6
Compression:
Stored size: 1.38 KB
Contents
#!/usr/bin/env ruby GC::Profiler.enable #require 'tz/eset' if File.exists? './ESet.so' require './ESet' else require 'Yk/ESet' end #require 'tz/debug2' include Yk class Item attr :time, :f, :cnt @@cnt = 0 def initialize f @cnt = @@cnt @@cnt += 1 @time = Time.now @f = f # p [self] end def < arg # p arg # p [arg] # p [self, arg] @f < arg.f end end def main s = ESet.new do |o| # p o.f o end p s.insert Item.new(rand) p s.insert Item.new(rand) p s.insert Item.new(rand) p s.insert Item.new(rand) p s.insert Item.new(rand) p s.insert Item.new(rand) ai = s.insert Item.new(r = rand) bi = s.insert Item.new(r) p ai p bi p ai[0] == bi[0] p s.insert Item.new(rand) p ai p s.begin.item.f p s.begin.inc.item.f p 200 aj = s.upper_bound Item.new(0.5); ak = s.lower_bound Item.new(0.5); p ak p ak.item it = s.begin while it != s.end toOut = it.item.f.to_s toOut += case it when aj "\t:upper_bound" when ak "\t:lower_bound" else "" end print toOut + "\n" it.inc end ESet.for_each s.begin, s.end do |o| p [o.f] end end main class Foo attr :f def initialize f @f = f end end s = ESet.new s = ESet.new do |o| o.f end s.insert Foo.new(rand) s.insert Foo.new(rand) s.insert Foo.new(rand) s.insert Foo.new(rand) ESet.for_each s.begin, s.end do |foo| p foo.f end it = s.begin while it != s.end p it.item it.inc end
Version data entries
6 entries across 6 versions & 1 rubygems