Sha256: 4844ca5221bdcca788cbda52166605370078835d06d5d420f5c85bd9881b63b0

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

# encoding: utf-8

require 'spec_helper'

describe Function::Proposition, '.new' do
  let(:object) { described_class }

  context 'with true argument' do
    subject { object.new(argument) }

    let(:argument) { true }

    it { should equal(Function::Proposition::Tautology.instance) }
  end

  context 'with false argument' do
    subject { object.new(argument) }

    let(:argument) { false }

    it { should equal(Function::Proposition::Contradiction.instance) }
  end

  context 'with a truthy argument' do
    subject { object.new(argument) }

    let(:argument) { 1 }

    it { should equal(Function::Proposition::Contradiction.instance) }
  end

  context 'with a falsey argument' do
    subject { object.new(argument) }

    let(:argument) { nil }

    it { should equal(Function::Proposition::Contradiction.instance) }
  end

  context 'with no arguments' do
    subject { object.new }

    specify { pending { expect { subject }.to raise_error(NotImplementedError, "#{object} is an abstract class") } }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
axiom-0.1.0 spec/unit/axiom/function/proposition/class_methods/new_spec.rb