Sha256: 933e09242db8b1a75ee4d8584915b2c9e751741686845c24e7f12fb2851eecb9

Contents?: true

Size: 1.96 KB

Versions: 7

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') }
      # TODO:
      it{ expect((2 / 3).to_s).to eq('0') }


      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('9') }
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dydx-0.1.31 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.3 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.29 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.28 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.25 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.2 spec/lib/algebra/set/fixnum_spec.rb
dydx-0.1.1 spec/lib/algebra/set/fixnum_spec.rb