spec/lib/delta_spec.rb in dydx-0.1.3 vs spec/lib/delta_spec.rb in dydx-0.1.4
- old
+ new
@@ -1,11 +1,35 @@
require 'spec_helper'
-describe Dydx:Delta do
- it{ expect(d.class).to eq(Delta) }
- it{ expect(dx.class).to eq(Delta) }
- it{ expect(dx.var).to eq(:x) }
- it{ expect(dx(y).class).to eq(Delta) }
- it{ expect(dx(y).var).to eq(:x) }
- it{ expect(dx(y).function).to eq(:y) }
- it{ expect{dxy}.to raise_error(NameError) }
+describe Dydx::Delta do
+ it { expect(d.class).to eq(Delta) }
+ it { expect(dx.class).to eq(Delta) }
+ it { expect(dx.var).to eq(:x) }
+ it { expect(dx(y).class).to eq(Delta) }
+ it { expect(dx(y).var).to eq(:x) }
+ it { expect(dx(y).function).to eq(:y) }
+ it { expect { dxy }.to raise_error(NameError) }
+
+ before { reset }
+
+ it 'ex1' do
+ $y = x ** n
+ expect(dy/dx).to eq( n * ( x ** ( n - 1 ) ) )
+ expect(d/dx($y)).to eq( n * ( x ** ( n - 1 ) ) )
+ end
+
+ it 'ex2' do
+ $y = x ** (x * 2)
+ expect(dy/dx).to eq(( 2 * x ) * ( x ** ( ( 2 * x ) - 1 ) ))
+ expect(d/dx($y)).to eq(( 2 * x ) * ( x ** ( ( 2 * x ) - 1 ) ))
+ end
+
+ it 'ex3' do
+ $y = (t ** 2) / 2
+ expect(dy/dt).to eq(t)
+ end
+
+ it 'ex4' do
+ $y = 2 * (e ** (2 * z))
+ expect(dy/dz).to eq(4 * ( e ** ( 2 * z ) ))
+ end
end