module Chervil RSpec.describe AST::Definition do it 'evaluates its body with its arguments when called' do expect( AST::Function.new( AST::Identifier.new("square"), [ AST::Identifier.new("x") ], [ AST::List.new( [ AST::Identifier.new("*"), AST::Identifier.new("x"), AST::Identifier.new("x") ] ) ], ).call( [AST::Number.new(5.0)], Env.new ) ).to eq(25.0) end end end