From 850a45da3f018e18f8d36cfe83c8667314418aba Mon Sep 17 00:00:00 2001 From: Rajith Vidanaarachchi Date: Sat, 23 Jul 2016 14:37:15 +0530 Subject: [PATCH] lambda-> proc, changing specs, adding backports --- lib/symengine.rb | 2 +- spec/lambdify_spec.rb | 40 ++++++++++++++++++++-------------------- symengine.gemspec | 1 + 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/lib/symengine.rb b/lib/symengine.rb index bee199a..8b8cb09 100644 --- a/lib/symengine.rb +++ b/lib/symengine.rb @@ -57,7 +57,7 @@ def lambdify_code(exp, syms) sym_map = syms.join(",") str.gsub!(/[\d\.]+/, 'Rational(\0,1)') str = REPLACEMENTS.inject(str) { |res, (from, to)| res.gsub(from, to)} - "lambda { | #{sym_map} | #{str} }" + "proc { | #{sym_map} | #{str} }" end end end diff --git a/spec/lambdify_spec.rb b/spec/lambdify_spec.rb index fe09c90..df399a6 100644 --- a/spec/lambdify_spec.rb +++ b/spec/lambdify_spec.rb @@ -9,26 +9,26 @@ def l(code) end it 'creates lambda codes' do - expect(SymEngine::Utils::lambdify_code( x + y + z, [x, y, z])).to eq("lambda { | x,y,z | x + y + z }") - expect(l( x + 5 )).to eq("lambda { | x | Rational(5,1) + x }") - expect(l( SymEngine::sin(x) )).to eq("lambda { | x | Math.sin(x) }") - expect(l( SymEngine::cos(x) )).to eq("lambda { | x | Math.cos(x) }") - expect(l( SymEngine::tan(x) )).to eq("lambda { | x | Math.tan(x) }") - expect(l( SymEngine::asin(x) )).to eq("lambda { | x | Math.asin(x) }") - expect(l( SymEngine::acos(x) )).to eq("lambda { | x | Math.acos(x) }") - expect(l( SymEngine::atan(x) )).to eq("lambda { | x | Math.atan(x) }") - expect(l( SymEngine::sinh(x) )).to eq("lambda { | x | Math.sinh(x) }") - expect(l( SymEngine::cosh(x) )).to eq("lambda { | x | Math.cosh(x) }") - expect(l( SymEngine::tanh(x) )).to eq("lambda { | x | Math.tanh(x) }") - expect(l( SymEngine::asinh(x) )).to eq("lambda { | x | Math.asinh(x) }") - expect(l( SymEngine::acosh(x) )).to eq("lambda { | x | Math.acosh(x) }") - expect(l( SymEngine::atanh(x) )).to eq("lambda { | x | Math.atanh(x) }") - expect(l( SymEngine::gamma(x) )).to eq("lambda { | x | Math.gamma(x) }") - expect(l( x + SymEngine::PI )).to eq("lambda { | x | x + Math::PI }") - expect(l( x + SymEngine::E )).to eq("lambda { | x | x + Math::E }") - expect(l( x * SymEngine::I )).to eq("lambda { | x | ::Complex::I*x }") - expect(l( SymEngine::dirichlet_eta(x) )).to eq("lambda { | x | SymEngine::Utils::evalf_dirichlet_eta(x) }") - expect(l( SymEngine::zeta(x) )).to eq("lambda { | x | SymEngine::Utils::evalf_zeta(x, Rational(1,1)) }") + expect(SymEngine::Utils::lambdify_code( x + y + z, [x, y, z])).to eq("proc { | x,y,z | x + y + z }") + expect(l( x + 5 )).to eq("proc { | x | Rational(5,1) + x }") + expect(l( SymEngine::sin(x) )).to eq("proc { | x | Math.sin(x) }") + expect(l( SymEngine::cos(x) )).to eq("proc { | x | Math.cos(x) }") + expect(l( SymEngine::tan(x) )).to eq("proc { | x | Math.tan(x) }") + expect(l( SymEngine::asin(x) )).to eq("proc { | x | Math.asin(x) }") + expect(l( SymEngine::acos(x) )).to eq("proc { | x | Math.acos(x) }") + expect(l( SymEngine::atan(x) )).to eq("proc { | x | Math.atan(x) }") + expect(l( SymEngine::sinh(x) )).to eq("proc { | x | Math.sinh(x) }") + expect(l( SymEngine::cosh(x) )).to eq("proc { | x | Math.cosh(x) }") + expect(l( SymEngine::tanh(x) )).to eq("proc { | x | Math.tanh(x) }") + expect(l( SymEngine::asinh(x) )).to eq("proc { | x | Math.asinh(x) }") + expect(l( SymEngine::acosh(x) )).to eq("proc { | x | Math.acosh(x) }") + expect(l( SymEngine::atanh(x) )).to eq("proc { | x | Math.atanh(x) }") + expect(l( SymEngine::gamma(x) )).to eq("proc { | x | Math.gamma(x) }") + expect(l( x + SymEngine::PI )).to eq("proc { | x | x + Math::PI }") + expect(l( x + SymEngine::E )).to eq("proc { | x | x + Math::E }") + expect(l( x * SymEngine::I )).to eq("proc { | x | ::Complex::I*x }") + expect(l( SymEngine::dirichlet_eta(x) )).to eq("proc { | x | SymEngine::Utils::evalf_dirichlet_eta(x) }") + expect(l( SymEngine::zeta(x) )).to eq("proc { | x | SymEngine::Utils::evalf_zeta(x, Rational(1,1)) }") end diff --git a/symengine.gemspec b/symengine.gemspec index 848b18b..5b415ff 100644 --- a/symengine.gemspec +++ b/symengine.gemspec @@ -16,4 +16,5 @@ Gem::Specification.new do |gem| gem.add_development_dependency 'rspec', '~> 3.0' gem.add_development_dependency 'rspec-its' gem.add_development_dependency 'rdoc', '~> 4.0' + gem.add_development_dependency 'backports' end