2019-08-06 17:33:27 +02:00
|
|
|
require_relative "helper"
|
|
|
|
|
|
|
|
module Mom
|
|
|
|
class TestMomCollection < MiniTest::Test
|
|
|
|
include MomCompile
|
|
|
|
|
|
|
|
def setup
|
|
|
|
Parfait.boot!(Parfait.default_test_options)
|
|
|
|
@comp = compile_mom( "class Test ; def main(); return 'Hi'; end; end;")
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_class
|
2019-08-07 11:06:06 +02:00
|
|
|
assert_equal MomCollection , @comp.class
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|
|
|
|
def test_compilers
|
2019-08-12 15:12:17 +02:00
|
|
|
assert_equal 22 , @comp.compilers.length
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|
|
|
|
def test_boot_compilers
|
2019-08-12 15:12:17 +02:00
|
|
|
assert_equal 21 , @comp.boot_compilers.length
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|
|
|
|
def test_compilers_bare
|
2019-08-12 15:12:17 +02:00
|
|
|
assert_equal 21 , MomCollection.new.compilers.length
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|
|
|
|
def test_append_class
|
2019-08-07 11:06:06 +02:00
|
|
|
assert_equal MomCollection, (@comp.append @comp).class
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|
|
|
|
def test_append_length
|
|
|
|
assert_equal 2 , @comp.append(@comp).method_compilers.length
|
|
|
|
end
|
|
|
|
end
|
2019-08-08 11:18:36 +02:00
|
|
|
class TestMomCollectionToRisc < MiniTest::Test
|
|
|
|
include MomCompile
|
|
|
|
|
|
|
|
def setup
|
|
|
|
Parfait.boot!(Parfait.default_test_options)
|
|
|
|
@comp = compile_mom( "class Test ; def main(); return 'Hi'; end; end;")
|
|
|
|
@collection = @comp.to_risc()
|
|
|
|
end
|
2019-08-10 20:30:00 +02:00
|
|
|
def compiler
|
|
|
|
@collection.method_compilers.first
|
|
|
|
end
|
|
|
|
def test_has_to_risc
|
2019-08-08 11:18:36 +02:00
|
|
|
assert_equal Risc::RiscCollection, @collection.class
|
|
|
|
end
|
|
|
|
def test_has_risc_compiler
|
2019-08-10 20:30:00 +02:00
|
|
|
assert_equal Risc::MethodCompiler, compiler.class
|
2019-08-12 15:12:17 +02:00
|
|
|
assert_equal 22, @collection.method_compilers.length
|
2019-08-10 20:30:00 +02:00
|
|
|
end
|
|
|
|
def test_has_risc_instructions
|
|
|
|
assert_equal Risc::Label, compiler.risc_instructions.class
|
|
|
|
assert_equal 17, compiler.risc_instructions.length
|
2019-08-08 11:18:36 +02:00
|
|
|
end
|
|
|
|
end
|
2019-08-06 17:33:27 +02:00
|
|
|
end
|