Sha256: b4a4b5e7c8602a6852aabb1231c5715a7214ae43a9f9871a4c9cd5f99f312d6d

Contents?: true

Size: 1004 Bytes

Versions: 8

Compression:

Stored size: 1004 Bytes

Contents

require 'spec_helper'
class Predicate
  describe Predicate, "&" do

    let(:left) { Predicate.coerce(x: 2) }

    subject{ left & right }

    before do
      subject.should be_a(Predicate)
    end

    context 'with itself' do
      let(:right){ left }

      it{ should be(left) }
    end

    context 'with the same expression' do
      let(:right){ Predicate.coerce(x: 2) }

      it{ should be(left) }
    end

    context 'with tautology' do
      let(:right){ Predicate.tautology }

      it 'returns self' do
        expect(subject).to eql(left)
      end
    end

    context 'with contradiction' do
      let(:right){ Predicate.contradiction }

      it 'returns contradiction' do
        expect(subject).to eql(right)
      end
    end

    context 'when using qualified names' do
      let(:right) { Predicate.coerce(x: 2) }

      it 'does not mix predicates' do
        l = left.qualify(:p1)
        r = right.qualify(:p2)
        expect(l & r).not_to eql(l)
      end

    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
predicate-2.8.0 spec/predicate/test_bool_and.rb
predicate-2.7.1 spec/predicate/test_bool_and.rb
predicate-2.7.0 spec/predicate/test_bool_and.rb
predicate-2.6.0 spec/predicate/test_bool_and.rb
predicate-2.5.0 spec/predicate/test_bool_and.rb
predicate-2.4.0 spec/predicate/test_bool_and.rb
predicate-2.3.3 spec/predicate/test_bool_and.rb
predicate-2.3.2 spec/predicate/test_bool_and.rb