Sha256: 9b0567929bccd7f016adfc013ceea4a5990db998c486c46f54f0c069eff9240a

Contents?: true

Size: 1.96 KB

Versions: 6

Compression:

Stored size: 1.96 KB

Contents

require 'spec_helper'

describe Fixnum do
  describe '#to_s' do
    it{ expect(1.to_s).to eq('1') }
  end

  describe '#differentiate' do
    it{ expect(3.d(:x).to_s).to eq('0') }
  end

  describe 'Calculate' do
    context 'With Formula' do
      let(:formula) { (:x + :y) }
      it{ expect((0 + formula).to_s).to eq(formula.to_s) }
      it{ expect((0 - formula).to_s).to eq('( - ( x + y ) )') }
      it{ expect((0 * formula).to_s).to eq('0') }
      it{ expect((1 * formula).to_s).to eq(formula.to_s) }
      it{ expect((0 / formula).to_s).to eq('0') }
      it{ expect((1 / formula).to_s).to eq('( 1 / ( x + y ) )') }
      it{ expect((0 ^ formula).to_s).to eq('0') }
      it{ expect((1 ^ formula).to_s).to eq('1') }
    end

    context 'With Symbol' do
      it{ expect(0 + :x).to eq(:x) }
      it{ expect((0 - :x).to_s).to eq('( - x )') }
      it{ expect((0 * :x).to_s).to eq('0') }
      it{ expect(1 * :x).to eq(:x) }
      it{ expect((0 / :x).to_s).to eq('0') }
      it{ expect((1 / :x).to_s).to eq('( 1 / x )') }
      it{ expect((0 ^ :x).to_s).to eq('0') }
      it{ expect((1 ^ :x).to_s).to eq('1') }
    end

    context 'With Fixnum' do
      it{ expect(0 + 3).to eq(3) }
      it{ expect(3 + 0).to eq(3) }
      it{ expect(2 + 3).to eq(5) }

      it{ expect(0 - 3).to eq(-3) }
      it{ expect(3 - 0).to eq(3) }
      it{ expect(2 - 3).to eq(-1) }

      it{ expect(0 * 3).to eq(0) }
      it{ expect(3 * 0).to eq(0) }
      it{ expect(1 * 3).to eq(3) }
      it{ expect(3 * 1).to eq(3) }
      it{ expect(3 * 2).to eq(6) }

      it{ expect((0 / 3).to_s).to eq('0') }
      it{ expect{(3 / 0).to_s}.to raise_error(ZeroDivisionError) }
      it{ expect((3 / 1).to_s).to eq('3') }
      it{ expect((2 / 3).to_s).to eq('( 2 / 3 )') }


      it{ expect((0 ^ 3).to_s).to eq('0') }
      it{ expect((3 ^ 0).to_s).to eq('1') }
      it{ expect((1 ^ 3).to_s).to eq('1') }
      it{ expect((3 ^ 1).to_s).to eq('3') }
      it{ expect((3 ^ 2).to_s).to eq('( 3 ^ 2 )') }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dydx-0.0.6 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.0.5 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.0.4 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.0.3 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.0.2 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.0.1 spec/lib/algebra/set/fixnum_spec.rb