Sha256: 1bc809736802eea9e053af937602dddfc9a7b687b51cb939e5274602850fbb82
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require_relative 'helper' describe Transform do class Context attr_accessor :value def initialize(value) @value = value end end class Pass attr_accessor :run_count def initialize @run_count = 0 end def run(context) @run_count += 1 if context.value > 0 context.value -= 1 true else false end end end before do @context = Context.new(3) @pass = Pass.new end describe Transform::Pipeline do should 'run all stages' do pipeline = Transform::Pipeline.new([ @pass ] * 4) pipeline.run(@context) @context.value.should == 0 @pass.run_count.should == 4 end end describe Transform::Iterative do should 'run until nothing changes' do pipeline = Transform::Iterative.new([ @pass ] * 2) pipeline.run(@context) # [ # 3 pass 2 -> true # 2 pass 1 -> true # ] # [ # 1 pass 0 -> true # 0 pass 0 -> false # ] # [ # 0 pass 0 -> false # 0 pass 0 -> false # ] @context.value.should == 0 @pass.run_count.should == 6 end should 'signal if any changes were made' do pipeline = Transform::Iterative.new([ @pass ] * 3) pipeline.run(@context).should == true pipeline.run(@context).should == false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
furnace-0.4.0.beta.2 | test/test_transform.rb |