1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/ruby/sentence.rb: Sentence class implemented

based on sentgen.rb

* test/ruby/sentgen.rb: removed.

* test/ruby/test_assignment.rb: use sentence.rb.

* test/ruby/test_yield.rb: block parameter passing emulator
  implemented.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2007-08-16 10:21:16 +00:00
parent ff31ae0141
commit 9a26bd3f57
5 changed files with 482 additions and 277 deletions

View file

@ -490,7 +490,7 @@ class TestAssignment < Test::Unit::TestCase
end
end
require 'sentgen'
require 'sentence'
class TestAssignmentGen < Test::Unit::TestCase
Syntax = {
:exp => [["0"],
@ -537,7 +537,7 @@ class TestAssignmentGen < Test::Unit::TestCase
def rename_var(obj)
vars = []
r = SentGen.subst(obj, 'var') {
r = obj.subst('var') {
var = "v#{vars.length}"
vars << var
var
@ -646,7 +646,7 @@ class TestAssignmentGen < Test::Unit::TestCase
end
def do_assign(assign, vars)
assign = assign.join('')
assign = assign.to_s
code = "#{assign}; [#{vars.join(",")}]"
begin
vals = eval(code)
@ -659,12 +659,12 @@ class TestAssignmentGen < Test::Unit::TestCase
end
def test_assignment
syntax = SentGen.expand_syntax(Syntax)
SentGen.each_tree(syntax, :xassign, 3) {|assign|
assign[0], vars = rename_var(assign[0])
sent = [assign].join('')
syntax = Sentence::Gen.expand_syntax(Syntax)
Sentence.each(syntax, :xassign, 3) {|assign|
assign, vars = rename_var(assign)
sent = assign.to_s
bruby = do_assign(assign, vars).to_a.sort
bemu = emu_assign(assign).to_a.sort
bemu = emu_assign(assign.to_a).to_a.sort
assert_equal(bemu, bruby, sent)
}
end