Sha256: f105fa391b4bebcb25366211d9aa1c9555d30fdee8e58eba80a4c1fe930f5db7

Contents?: true

Size: 1014 Bytes

Versions: 1

Compression:

Stored size: 1014 Bytes

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 be(Function::Proposition::Tautology.instance) }
  end

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

    let(:argument) { false }

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

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

    let(:argument) { 1 }

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

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

    let(:argument) { nil }

    it { should be(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.1 spec/unit/axiom/function/proposition/class_methods/new_spec.rb