rearranging tests a little
This commit is contained in:
67
test/compiler/test_basic.rb
Normal file
67
test/compiler/test_basic.rb
Normal file
@@ -0,0 +1,67 @@
|
||||
require_relative "compiler_helper"
|
||||
|
||||
|
||||
class TestBasic < MiniTest::Test
|
||||
def check
|
||||
expressions = Virtual.machine.boot.compile_main @string_input
|
||||
if( expressions.first.is_a? Virtual::Self )
|
||||
expressions.first.type.instance_variable_set :@of_class , nil
|
||||
end
|
||||
is = Sof.write(expressions)
|
||||
#puts is
|
||||
assert_equal @output , is
|
||||
end
|
||||
|
||||
def test_number
|
||||
@string_input = '42 '
|
||||
@output = "- Virtual::Return(:type => Virtual::Integer, :value => 42)"
|
||||
check
|
||||
end
|
||||
|
||||
def test_true
|
||||
@string_input = 'true '
|
||||
@output = "- Virtual::Return(:type => Virtual::Reference, :value => true)"
|
||||
check
|
||||
end
|
||||
def test_false
|
||||
@string_input = 'false '
|
||||
@output = "- Virtual::Return(:type => Virtual::Reference, :value => false)"
|
||||
check
|
||||
end
|
||||
def test_nil
|
||||
@string_input = 'nil '
|
||||
@output = "- Virtual::Return(:type => Virtual::Reference)"
|
||||
check
|
||||
end
|
||||
|
||||
def test_name
|
||||
@string_input = 'foo '
|
||||
@output = "- Virtual::Return(:type => Virtual::Unknown)"
|
||||
check
|
||||
end
|
||||
|
||||
def test_self
|
||||
@string_input = 'self '
|
||||
@output = "- Virtual::Self(:type => Virtual::Reference())"
|
||||
check
|
||||
end
|
||||
|
||||
def test_instance_variable
|
||||
@string_input = '@foo_bar '
|
||||
@output = "- Virtual::Return(:type => Virtual::Unknown)"
|
||||
check
|
||||
end
|
||||
|
||||
def pest_module_name
|
||||
@string_input = 'FooBar '
|
||||
@output = ""
|
||||
check
|
||||
end
|
||||
|
||||
def test_string
|
||||
@string_input = "\"hello\""
|
||||
@output = "- Virtual::Return(:type => Virtual::Reference, :value => :hello)"
|
||||
check
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue
Block a user