Sha256: 43e0359ddcb7c2b08b1018510c339e9bb28f9b10e6fc031943138b9c50a7c6ad

Contents?: true

Size: 1.16 KB

Versions: 83

Compression:

Stored size: 1.16 KB

Contents

require "#{File.dirname(__FILE__)}/spec_helper"

describe 'Unifying a bound value' do
  [nil, true, false,
   :sym, "str", /regex/,
   3, 2.0,
   Object.new, Class.new.new,
   [], {}].each do |type|
    describe "for #{type.class} instances" do
      it 'passes unification for an object of equal value' do
        local do |var, var2|
          unify var, type
          var.should == type
          type.should == var
          lambda {unify var, type}.should_not raise_error

          unify var2, type
          var.should == var2
          var2.should == var
          lambda {unify var, var2}.should_not raise_error
        end
      end

      it 'fails unification for an object of inequal value' do
        different = Object.new
        local do |var, var2|
          unify var, type
          var.should_not == different
          different.should_not == var
          lambda {unify var, different}.should raise_error(Dataflow::UnificationError)

          unify var2, different
          var.should_not == var2
          var2.should_not == var
          lambda {unify var, different}.should raise_error(Dataflow::UnificationError)
        end
      end
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
engineyard-serverside-2.0.4 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.5 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.3 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.2 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.1 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.rc1 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.pre5 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.pre4 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.pre3 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.pre2 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-2.0.0.pre1 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.7.0.pre2 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre6 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre5 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre4 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre3 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre2 lib/vendor/dataflow/spec/equality_spec.rb
engineyard-serverside-1.6.4.pre lib/vendor/dataflow/spec/equality_spec.rb