Sha256: 83478c9ae456beb6f7ce1da2cba2227667f6c42947954819141bbd70e95e90f6
Contents?: true
Size: 1.37 KB
Versions: 119
Compression:
Stored size: 1.37 KB
Contents
require "#{File.dirname(__FILE__)}/spec_helper" describe 'A by_need expression' do describe 'when a method is called on it' do it 'binds its variable' do local do |x, y, z| Thread.new { unify y, by_need { 4 } } Thread.new { unify z, x + y } Thread.new { unify x, by_need { 3 } } z.should == 7 end end end describe 'when a bound variable is unified to it' do it 'passes unififcation for equal values' do local do |x| unify x, by_need { 1 } unify x, 1 x.should == 1 y = by_need { 1 } unify y, 1 y.should == 1 end end it 'fails unififcation for unequal values' do local do |x| unify x, by_need { 1 } lambda { unify x, 2 }.should raise_error(Dataflow::UnificationError) y = by_need { 1 } lambda { unify y, 2 }.should raise_error(Dataflow::UnificationError) end end describe 'when it is unified to a bound variable' do it 'passes unififcation for equal values' do local do |x| unify x, 1 unify x, by_need { 1 } x.should == 1 end end it 'fails unification for unequal values' do local do |x| unify x, 1 lambda { unify x, by_need { 2 } }.should raise_error(Dataflow::UnificationError) end end end end end
Version data entries
119 entries across 119 versions & 3 rubygems