55 let ( :z ) { SymEngine ::Symbol . new ( 'z' ) }
66
77 def l ( code )
8- SymEngine ::Utils ::lambdify_code ( code )
8+ SymEngine ::Utils ::lambdify_code ( code , [ x ] )
99 end
1010
1111 it 'creates lambda codes' do
12- expect ( l ( x + y + z ) ) . to eq ( "lambda { | x,y,z | x + y + z }" )
12+ expect ( SymEngine :: Utils :: lambdify_code ( x + y + z , [ x , y , z ] ) ) . to eq ( "lambda { | x,y,z | x + y + z }" )
1313 expect ( l ( x + 5 ) ) . to eq ( "lambda { | x | Rational(5,1) + x }" )
1414 expect ( l ( SymEngine ::sin ( x ) ) ) . to eq ( "lambda { | x | Math.sin(x) }" )
1515 expect ( l ( SymEngine ::cos ( x ) ) ) . to eq ( "lambda { | x | Math.cos(x) }" )
@@ -41,7 +41,7 @@ def l(code)
4141
4242 describe 'lambda for Addition' do
4343 let ( :func ) { x + y + z }
44- let ( :lamb ) { SymEngine ::lambdify ( func ) }
44+ let ( :lamb ) { SymEngine ::lambdify ( func , [ x , y , z ] ) }
4545 it 'performs addition with a lambda function' do
4646 expect ( lamb . call ( 1 , 1 , 1 ) ) . to eq ( 3 )
4747 expect ( lamb . call ( 1 , -1 , 1 ) ) . to eq ( 1 )
@@ -51,7 +51,7 @@ def l(code)
5151
5252 describe 'lambda for Addition with FixNums' do
5353 let ( :func ) { x + 5 }
54- let ( :lamb ) { SymEngine ::lambdify ( func ) }
54+ let ( :lamb ) { SymEngine ::lambdify ( func , [ x ] ) }
5555 it 'performs addition with a lambda function' do
5656 expect ( lamb . call ( 1 ) ) . to eq ( 6 )
5757 expect ( lamb . call ( 0 ) ) . to eq ( 5 )
@@ -62,12 +62,21 @@ def l(code)
6262
6363 describe 'lambda for sin' do
6464 let ( :func ) { SymEngine ::sin ( x ) }
65- let ( :lamb ) { SymEngine ::lambdify ( func ) }
65+ let ( :lamb ) { SymEngine ::lambdify ( func , [ x ] ) }
6666 it 'performs sin calculation with a lambda function' do
6767 expect ( lamb . call ( 0 ) ) . to be_within ( 1e-15 ) . of ( 0.0 )
6868 expect ( lamb . call ( Math ::PI ) ) . to be_within ( 1e-15 ) . of ( 0.0 )
6969 expect ( lamb . call ( Math ::PI /2 ) ) . to be_within ( 1e-15 ) . of ( 1.0 )
7070 end
7171 end
7272
73+ describe 'to_proc' do
74+ let ( :func ) { x * 10 }
75+ let ( :func2 ) { x + y + 10 }
76+ it 'creates procs' do
77+ expect ( [ 1 , 2 , 3 , 4 , 5 ] . map ( &func ) ) . to eq ( [ 10 , 20 , 30 , 40 , 50 ] )
78+ expect { [ [ 1 , 2 ] , [ 3 , 4 ] ] . map ( &func2 ) } . to raise_error ( ArgumentError )
79+ end
80+ end
81+
7382end
0 commit comments