3702411043
had to change course, normalising and object creation is not possible in one go have to now generate random tmp vars that will have to be picked up later (sorted by tmp_ prefix?)
44 lines
1.0 KiB
Ruby
44 lines
1.0 KiB
Ruby
require_relative "helper"
|
|
|
|
module Vool
|
|
class TestEmptyClassStatement < MiniTest::Test
|
|
|
|
def setup
|
|
input = "class Tryout < Base;end"
|
|
@lst = RubyCompiler.compile( input )
|
|
end
|
|
|
|
def test_compile_class
|
|
assert_equal ClassStatement , @lst.class
|
|
end
|
|
|
|
def test_compile_class_name
|
|
assert_equal :Tryout , @lst.name
|
|
end
|
|
|
|
def test_compile_class_super
|
|
assert_equal :Base , @lst.super_class_name
|
|
end
|
|
|
|
def test_compile_class_body
|
|
assert_equal 0 , @lst.body.length
|
|
assert_equal ScopeStatement , @lst.body.class
|
|
end
|
|
|
|
end
|
|
class TestBasicClassStatement < MiniTest::Test
|
|
include CompilerHelper
|
|
|
|
def test_compile_one_method
|
|
lst = RubyCompiler.compile( in_Test("@ivar = 4") )
|
|
assert_equal IvarAssignment , lst.body.class
|
|
end
|
|
def test_compile_two_methods
|
|
lst = RubyCompiler.compile( in_Test("false; true;") )
|
|
assert_equal ScopeStatement , lst.body.class
|
|
assert_equal TrueConstant , lst.body.statements[1].class
|
|
end
|
|
|
|
end
|
|
end
|