From dd417d7dab9dca98bc7e285af58ff9a977c6db58 Mon Sep 17 00:00:00 2001 From: Golmote Date: Mon, 7 Sep 2015 21:52:09 +0200 Subject: [PATCH] Add tests for Monkey --- tests/languages/monkey/comment_feature.test | 15 +++ tests/languages/monkey/function_feature.test | 13 ++ tests/languages/monkey/keyword_feature.test | 125 ++++++++++++++++++ tests/languages/monkey/number_feature.test | 19 +++ tests/languages/monkey/operator_feature.test | 41 ++++++ .../monkey/preprocessor_feature.test | 15 +++ tests/languages/monkey/string_feature.test | 13 ++ tests/languages/monkey/type-char_feature.test | 17 +++ 8 files changed, 258 insertions(+) create mode 100644 tests/languages/monkey/comment_feature.test create mode 100644 tests/languages/monkey/function_feature.test create mode 100644 tests/languages/monkey/keyword_feature.test create mode 100644 tests/languages/monkey/number_feature.test create mode 100644 tests/languages/monkey/operator_feature.test create mode 100644 tests/languages/monkey/preprocessor_feature.test create mode 100644 tests/languages/monkey/string_feature.test create mode 100644 tests/languages/monkey/type-char_feature.test diff --git a/tests/languages/monkey/comment_feature.test b/tests/languages/monkey/comment_feature.test new file mode 100644 index 0000000000..da20a31827 --- /dev/null +++ b/tests/languages/monkey/comment_feature.test @@ -0,0 +1,15 @@ +' Foobar +#Rem Foo +Bar 'Baz +#End + +---------------------------------------------------- + +[ + ["comment", "' Foobar"], + ["comment", "#Rem Foo\r\nBar 'Baz\r\n#End"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/tests/languages/monkey/function_feature.test b/tests/languages/monkey/function_feature.test new file mode 100644 index 0000000000..21debeb3be --- /dev/null +++ b/tests/languages/monkey/function_feature.test @@ -0,0 +1,13 @@ +foobar() +Foo_Bar_42() + +---------------------------------------------------- + +[ + ["function", "foobar"], ["punctuation", "("], ["punctuation", ")"], + ["function", "Foo_Bar_42"], ["punctuation", "("], ["punctuation", ")"] +] + +---------------------------------------------------- + +Checks for functions. \ No newline at end of file diff --git a/tests/languages/monkey/keyword_feature.test b/tests/languages/monkey/keyword_feature.test new file mode 100644 index 0000000000..9e7d8b0a54 --- /dev/null +++ b/tests/languages/monkey/keyword_feature.test @@ -0,0 +1,125 @@ +Void +Strict +Public +Private +Property +Bool +Int +Float +String +Array +Object +Continue +Exit +Import +Extern +New +Self +Super +Try +Catch +Eachin +True +False +Extends +Abstract +Final +Select +Case +Default +Const +Local +Global +Field +Method +Function +Class +End +If +Then +Else +ElseIf +EndIf +While +Wend +Repeat +Until +Forever +For +To +Step +Next +Return +Module +Interface +Implements +Inline +Throw +Null + +---------------------------------------------------- + +[ + ["keyword", "Void"], + ["keyword", "Strict"], + ["keyword", "Public"], + ["keyword", "Private"], + ["keyword", "Property"], + ["keyword", "Bool"], + ["keyword", "Int"], + ["keyword", "Float"], + ["keyword", "String"], + ["keyword", "Array"], + ["keyword", "Object"], + ["keyword", "Continue"], + ["keyword", "Exit"], + ["keyword", "Import"], + ["keyword", "Extern"], + ["keyword", "New"], + ["keyword", "Self"], + ["keyword", "Super"], + ["keyword", "Try"], + ["keyword", "Catch"], + ["keyword", "Eachin"], + ["keyword", "True"], + ["keyword", "False"], + ["keyword", "Extends"], + ["keyword", "Abstract"], + ["keyword", "Final"], + ["keyword", "Select"], + ["keyword", "Case"], + ["keyword", "Default"], + ["keyword", "Const"], + ["keyword", "Local"], + ["keyword", "Global"], + ["keyword", "Field"], + ["keyword", "Method"], + ["keyword", "Function"], + ["keyword", "Class"], + ["keyword", "End"], + ["keyword", "If"], + ["keyword", "Then"], + ["keyword", "Else"], + ["keyword", "ElseIf"], + ["keyword", "EndIf"], + ["keyword", "While"], + ["keyword", "Wend"], + ["keyword", "Repeat"], + ["keyword", "Until"], + ["keyword", "Forever"], + ["keyword", "For"], + ["keyword", "To"], + ["keyword", "Step"], + ["keyword", "Next"], + ["keyword", "Return"], + ["keyword", "Module"], + ["keyword", "Interface"], + ["keyword", "Implements"], + ["keyword", "Inline"], + ["keyword", "Throw"], + ["keyword", "Null"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/tests/languages/monkey/number_feature.test b/tests/languages/monkey/number_feature.test new file mode 100644 index 0000000000..5d943c1ecb --- /dev/null +++ b/tests/languages/monkey/number_feature.test @@ -0,0 +1,19 @@ +0 +42 +3.14159 +.5 +$BadFace + +---------------------------------------------------- + +[ + ["number", "0"], + ["number", "42"], + ["number", "3.14159"], + ["number", ".5"], + ["number", "$BadFace"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/tests/languages/monkey/operator_feature.test b/tests/languages/monkey/operator_feature.test new file mode 100644 index 0000000000..0a468b020b --- /dev/null +++ b/tests/languages/monkey/operator_feature.test @@ -0,0 +1,41 @@ +.. +< <> <= +> >= += +:= ++ += +- -= +* *= +/ /= +& &= +~ ~= +| |= +Mod Mod= +Shl Shl= +Shr Shr= +And Not Or + +---------------------------------------------------- + +[ + ["operator", ".."], + ["operator", "<"], ["operator", "<>"], ["operator", "<="], + ["operator", ">"], ["operator", ">="], + ["operator", "="], + ["operator", ":="], + ["operator", "+"], ["operator", "+="], + ["operator", "-"], ["operator", "-="], + ["operator", "*"], ["operator", "*="], + ["operator", "/"], ["operator", "/="], + ["operator", "&"], ["operator", "&="], + ["operator", "~"], ["operator", "~="], + ["operator", "|"], ["operator", "|="], + ["operator", "Mod"], ["operator", "Mod="], + ["operator", "Shl"], ["operator", "Shl="], + ["operator", "Shr"], ["operator", "Shr="], + ["operator", "And"], ["operator", "Not"], ["operator", "Or"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/tests/languages/monkey/preprocessor_feature.test b/tests/languages/monkey/preprocessor_feature.test new file mode 100644 index 0000000000..dd9cc73d0b --- /dev/null +++ b/tests/languages/monkey/preprocessor_feature.test @@ -0,0 +1,15 @@ +#If HOST +#ElseIf +#Else + +---------------------------------------------------- + +[ + ["preprocessor", "#If HOST"], + ["preprocessor", "#ElseIf"], + ["preprocessor", "#Else"] +] + +---------------------------------------------------- + +Checks for preprocessor directives. \ No newline at end of file diff --git a/tests/languages/monkey/string_feature.test b/tests/languages/monkey/string_feature.test new file mode 100644 index 0000000000..21b2dc7d80 --- /dev/null +++ b/tests/languages/monkey/string_feature.test @@ -0,0 +1,13 @@ +"" +"Foo ~qBar~q" + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"Foo ~qBar~q\""] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/tests/languages/monkey/type-char_feature.test b/tests/languages/monkey/type-char_feature.test new file mode 100644 index 0000000000..9590a7dded --- /dev/null +++ b/tests/languages/monkey/type-char_feature.test @@ -0,0 +1,17 @@ +foo? +bar% +baz# +foobar$ + +---------------------------------------------------- + +[ + "foo", ["type-char", "?"], + "\r\nbar", ["type-char", "%"], + "\r\nbaz", ["type-char", "#"], + "\r\nfoobar", ["type-char", "$"] +] + +---------------------------------------------------- + +Checks for type chars. \ No newline at end of file