Commit 13975a3fb4d95661d4a166154fb615aa9369fed4

Golmote 2015-08-26T20:26:18

Add tests for LOLCODE

diff --git a/tests/languages/lolcode/boolean_feature.test b/tests/languages/lolcode/boolean_feature.test
new file mode 100644
index 0000000..4409cfe
--- /dev/null
+++ b/tests/languages/lolcode/boolean_feature.test
@@ -0,0 +1,13 @@
+WIN
+FAIL
+
+----------------------------------------------------
+
+[
+	["boolean", "WIN"],
+	["boolean", "FAIL"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/tests/languages/lolcode/comment_feature.test b/tests/languages/lolcode/comment_feature.test
new file mode 100644
index 0000000..6031e27
--- /dev/null
+++ b/tests/languages/lolcode/comment_feature.test
@@ -0,0 +1,14 @@
+OBTW foo
+bar TLDR
+	BTW foobar
+
+----------------------------------------------------
+
+[
+	["comment", "OBTW foo\r\nbar TLDR"],
+	["comment", "BTW foobar"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
\ No newline at end of file
diff --git a/tests/languages/lolcode/function_feature.test b/tests/languages/lolcode/function_feature.test
new file mode 100644
index 0000000..0f3dc0d
--- /dev/null
+++ b/tests/languages/lolcode/function_feature.test
@@ -0,0 +1,18 @@
+I IZ foobar
+	HOW IZ I foobar
+IZ fooBAR
+
+----------------------------------------------------
+
+[
+	["keyword", "I IZ"],
+	["function", "foobar"],
+	["keyword", "HOW IZ I"],
+	["function", "foobar"],
+	["keyword", "IZ"],
+	["function", "fooBAR"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/tests/languages/lolcode/keyword_feature.test b/tests/languages/lolcode/keyword_feature.test
new file mode 100644
index 0000000..bb59d25
--- /dev/null
+++ b/tests/languages/lolcode/keyword_feature.test
@@ -0,0 +1,93 @@
+O HAI IM
+KTHX
+HAI
+KTHXBYE
+I HAS A
+ITZ
+ITZ A
+R
+AN
+MKAY
+SMOOSH
+MAEK
+IS NOW
+IS NOW A
+VISIBLE
+GIMMEH
+O RLY?
+YA RLY
+NO WAI
+OIC
+MEBBE
+WTF?
+OMG
+OMGWTF
+GTFO
+IM IN YR
+IM OUTTA YR
+FOUND YR
+YR
+TIL
+WILE
+UPPIN
+NERFIN
+I IZ
+HOW IZ I foo
+IF U SAY SO
+SRS
+HAS A
+LIEK
+LIEK A
+IZ
+foo'Z
+
+----------------------------------------------------
+
+[
+	["keyword", "O HAI IM"],
+	["keyword", "KTHX"],
+	["keyword", "HAI"],
+	["keyword", "KTHXBYE"],
+	["keyword", "I HAS A"],
+	["keyword", "ITZ"],
+	["keyword", "ITZ A"],
+	["keyword", "R"],
+	["keyword", "AN"],
+	["keyword", "MKAY"],
+	["keyword", "SMOOSH"],
+	["keyword", "MAEK"],
+	["keyword", "IS NOW"],
+	["keyword", "IS NOW A"],
+	["keyword", "VISIBLE"],
+	["keyword", "GIMMEH"],
+	["keyword", "O RLY?"],
+	["keyword", "YA RLY"],
+	["keyword", "NO WAI"],
+	["keyword", "OIC"],
+	["keyword", "MEBBE"],
+	["keyword", "WTF?"],
+	["keyword", "OMG"],
+	["keyword", "OMGWTF"],
+	["keyword", "GTFO"],
+	["keyword", "IM IN YR"],
+	["keyword", "IM OUTTA YR"],
+	["keyword", "FOUND YR"],
+	["keyword", "YR"],
+	["keyword", "TIL"],
+	["keyword", "WILE"],
+	["keyword", "UPPIN"],
+	["keyword", "NERFIN"],
+	["keyword", "I IZ"],
+	["keyword", "HOW IZ I"], ["function", "foo"],
+	["keyword", "IF U SAY SO"],
+	["keyword", "SRS"],
+	["keyword", "HAS A"],
+	["keyword", "LIEK"],
+	["keyword", "LIEK A"],
+	["keyword", "IZ"],
+	"\r\nfoo", ["keyword", "'Z"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/tests/languages/lolcode/label_feature.test b/tests/languages/lolcode/label_feature.test
new file mode 100644
index 0000000..7722d2a
--- /dev/null
+++ b/tests/languages/lolcode/label_feature.test
@@ -0,0 +1,15 @@
+IM IN YR foobar
+	IM OUTTA YR fooBAR
+
+----------------------------------------------------
+
+[
+	["keyword", "IM IN YR"],
+	["label", "foobar"],
+	["keyword", "IM OUTTA YR"],
+	["label", "fooBAR"]
+]
+
+----------------------------------------------------
+
+Checks for labels.
\ No newline at end of file
diff --git a/tests/languages/lolcode/number_feature.test b/tests/languages/lolcode/number_feature.test
new file mode 100644
index 0000000..060d6d2
--- /dev/null
+++ b/tests/languages/lolcode/number_feature.test
@@ -0,0 +1,13 @@
+42
+3.14159
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/tests/languages/lolcode/operator_feature.test b/tests/languages/lolcode/operator_feature.test
new file mode 100644
index 0000000..c55dcc1
--- /dev/null
+++ b/tests/languages/lolcode/operator_feature.test
@@ -0,0 +1,39 @@
+NOT
+BOTH SAEM
+DIFFRINT
+SUM OF
+DIFF OF
+PRODUKT OF
+QUOSHUNT OF
+MOD OF
+BIGGR OF
+SMALLR OF
+BOTH OF
+EITHER OF
+WON OF
+ALL OF
+ANY OF
+
+----------------------------------------------------
+
+[
+	["operator", "NOT"],
+	["operator", "BOTH SAEM"],
+	["operator", "DIFFRINT"],
+	["operator", "SUM OF"],
+	["operator", "DIFF OF"],
+	["operator", "PRODUKT OF"],
+	["operator", "QUOSHUNT OF"],
+	["operator", "MOD OF"],
+	["operator", "BIGGR OF"],
+	["operator", "SMALLR OF"],
+	["operator", "BOTH OF"],
+	["operator", "EITHER OF"],
+	["operator", "WON OF"],
+	["operator", "ALL OF"],
+	["operator", "ANY OF"]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/tests/languages/lolcode/string_feature.test b/tests/languages/lolcode/string_feature.test
new file mode 100644
index 0000000..813228d
--- /dev/null
+++ b/tests/languages/lolcode/string_feature.test
@@ -0,0 +1,33 @@
+""
+"foobar"
+"fo:"o"
+"foo:)bar:>baz"
+"foo:{bar}baz"
+
+----------------------------------------------------
+
+[
+	["string", ["\"\""]],
+	["string", ["\"foobar\""]],
+	["string", [
+		"\"fo",
+		["symbol", ":\""],
+		"o\""
+	]],
+	["string", [
+		"\"foo",
+		["symbol", ":)"],
+		"bar",
+		["symbol", ":>"],
+		"baz\""
+	]],
+	["string", [
+		"\"foo",
+		["variable", ":{bar}"],
+		"baz\""
+	]]
+]
+
+----------------------------------------------------
+
+Checks for strings, with variables and symbols in them.
\ No newline at end of file
diff --git a/tests/languages/lolcode/symbol_feature.test b/tests/languages/lolcode/symbol_feature.test
new file mode 100644
index 0000000..7f1534a
--- /dev/null
+++ b/tests/languages/lolcode/symbol_feature.test
@@ -0,0 +1,27 @@
+YARN A YARN
+NUMBR A NUMBR
+NUMBAR A NUMBAR
+TROOF A TROOF
+BUKKIT A BUKKIT
+NOOB A NOOB
+
+----------------------------------------------------
+
+[
+	["symbol", ["YARN"]],
+	["symbol", [["keyword", "A"], " YARN"]],
+	["symbol", ["NUMBR"]],
+	["symbol", [["keyword", "A"], " NUMBR"]],
+	["symbol", ["NUMBAR"]],
+	["symbol", [["keyword", "A"], " NUMBAR"]],
+	["symbol", ["TROOF"]],
+	["symbol", [["keyword", "A"], " TROOF"]],
+	["symbol", ["BUKKIT"]],
+	["symbol", [["keyword", "A"], " BUKKIT"]],
+	["symbol", ["NOOB"]],
+	["symbol", [["keyword", "A"], " NOOB"]]
+]
+
+----------------------------------------------------
+
+Checks for symbols, optionally prefixed by "A ".
\ No newline at end of file
diff --git a/tests/languages/lolcode/variable_feature.test b/tests/languages/lolcode/variable_feature.test
new file mode 100644
index 0000000..1066c33
--- /dev/null
+++ b/tests/languages/lolcode/variable_feature.test
@@ -0,0 +1,11 @@
+IT
+
+----------------------------------------------------
+
+[
+	["variable", "IT"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file