Skip to content

Commit a91d406

Browse files
committed
Tests for lambdify
1 parent a63684d commit a91d406

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

spec/lambdify_spec.rb

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
describe 'SymEngine::lambdify' do
2+
3+
let(:x) { SymEngine::Symbol.new('x') }
4+
let(:y) { SymEngine::Symbol.new('y') }
5+
let(:z) { SymEngine::Symbol.new('z') }
6+
7+
describe 'lambda for Addition' do
8+
let(:func) { x + y + z }
9+
let(:lamb) { SymEngine::lambdify(func) }
10+
it 'performs addition with a lambda function' do
11+
expect(lamb.call(1, 1, 1)).to eq(3)
12+
expect(lamb.call(1, -1, 1)).to eq(1)
13+
expect(lamb.call(-1, -1, -1)).to eq(-3)
14+
end
15+
end
16+
17+
describe 'lambda for Addition with FixNums' do
18+
let(:func) { x + 5}
19+
let(:lamb) { SymEngine::lambdify(func) }
20+
it 'performs addition with a lambda function' do
21+
expect(lamb.call(1)).to eq(6)
22+
expect(lamb.call(0)).to eq(5)
23+
expect(lamb.call(-1)).to eq(4)
24+
expect(lamb.call(Math::PI)).to be_within(0.000000000000001).of(8.141592653589793)
25+
end
26+
end
27+
28+
describe 'lambda for sin' do
29+
let(:func) { SymEngine::sin(x) }
30+
let(:lamb) { SymEngine::lambdify(func) }
31+
it 'performs sin calculation with a lambda function' do
32+
expect(lamb.call(0)).to be_within(0.000000000000001).of(0.0)
33+
expect(lamb.call(Math::PI)).to be_within(0.000000000000001).of(0.0)
34+
expect(lamb.call(Math::PI/2)).to be_within(0.000000000000001).of(1.0)
35+
end
36+
end
37+
38+
end

0 commit comments

Comments
 (0)