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:
parent
ff31ae0141
commit
9a26bd3f57
5 changed files with 482 additions and 277 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue