Sha256: 57b6006e97e2ac374169a29f09813cec01ca86477e72c3f51a58881c2907bd1e

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

require "metamorpher/terms/term_set"
require "metamorpher/terms/literal"
require "metamorpher/terms/variable"

module Metamorpher
  module Terms
    shared_examples_for "a term set builder" do
      describe "either!" do
        it "should create an instance of TermSet" do
          actual = subject.either!(Literal.new(name: :a), Variable.new(name: :b))
          expected = TermSet.new(terms: [Literal.new(name: :a), Variable.new(name: :b)])

          expect(actual).to eq(expected)
        end

        it "should return an empty TermSet when given no arguments" do
          actual = subject.either!
          expected = Metamorpher::Terms::TermSet.new

          expect(actual).to eq(expected)
        end

        it "should automatically convert arguments to literals" do
          actual = subject.either!(:add, :subtract)
          expected = TermSet.new(terms: [Literal.new(name: :add), Literal.new(name: :subtract)])

          expect(actual).to eq(expected)
        end

        it "should not automatically convert arguments that are already terms" do
          actual = subject.either!(:add, Variable.new(name: :operator))
          expected = TermSet.new(terms: [Literal.new(name: :add), Variable.new(name: :operator)])

          expect(actual).to eq(expected)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
metamorpher-0.2.6 spec/support/shared_examples/shared_examples_for_term_set_builder.rb
metamorpher-0.2.5 spec/support/shared_examples/shared_examples_for_term_set_builder.rb
metamorpher-0.2.4 spec/support/shared_examples/shared_examples_for_term_set_builder.rb
metamorpher-0.2.3 spec/support/shared_examples/shared_examples_for_term_set_builder.rb
metamorpher-0.2.2 spec/support/shared_examples/shared_examples_for_term_set_builder.rb
metamorpher-0.2.1 spec/support/shared_examples/shared_examples_for_term_set_builder.rb