Sha256: 0dccac3c6430b8e0d9a2b3b9d55a84b05f123c4b25eba5a8061ce18aff06a9b4

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'

describe Dydx::Algebra::Operator::Parts::Formula do
  it{ expect(((:a * :b) + (:a * :c)).to_s).to eq('( a * ( b + c ) )') }
  it{ expect(((:b * :a) + (:c * :a)).to_s).to eq('( ( b + c ) * a )') }
  it{ expect(((:a * :b) - (:a * :c)).to_s).to eq('( a * ( b - c ) )') }
  it{ expect(((:b * :a) - (:c * :a)).to_s).to eq('( ( b - c ) * a )') }

  it{ expect(((:x ^ 3) * (:x ^ 2)).to_s).to eq('( x ^ 5 )') }
  it{ expect(((:x ^ 3) / (:x ^ 2)).to_s).to eq('x') }
  it{ expect(((:x ^ :n) * (:y ^ :n)).to_s).to eq('( ( x * y ) ^ n )') }
  it{ expect(((:x ^ :n) / (:y ^ :n)).to_s).to eq('( ( x / y ) ^ n )') }

  it{ expect(((:x - 2) + 2).to_s).to eq('x') }
  it{ expect(((:x + 2) - 2).to_s).to eq('x') }
  it{ expect(((:x * 2) / 2).to_s).to eq('x') }
  it{ expect(((:x / 2) * 2).to_s).to eq('x') }

  it{ expect(((:x + :y) + :y).to_s).to eq('( ( 2 * y ) + x )') }
  it{ expect(((:x - :y) - :y).to_s).to eq('( x - ( 2 * y ) )') }
  it{ expect(((:y - :x) - :y).to_s).to eq('( - x )') }
  it{ expect(((:x * :y) * :y).to_s).to eq('( ( y ^ 2 ) * x )') }
  it{ expect(((:x / :y) / :y).to_s).to eq('( x / ( y ^ 2 ) )') }
  it{ expect(((:y / :x) / :y).to_s).to eq('( 1 / x )') }

  it{ expect(((:x * 2) ^ 2).to_s).to eq('( ( x ^ 2 ) * 4 )') }
  it{ expect(((:x / 2) ^ 2).to_s).to eq('( ( x ^ 2 ) / 4 )') }
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dydx-0.0.5 spec/lib/algebra/operator/parts/formula_spec.rb