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