Commit 1c152ae1553f50b85642615bd89eee8184829d6c

Golmote 2015-09-06T12:16:46

Merge pull request #742 from Golmote/tests-sas Add tests for SAS

diff --git a/tests/languages/sas/comment_feature.test b/tests/languages/sas/comment_feature.test
new file mode 100644
index 0000000..dea1e0a
--- /dev/null
+++ b/tests/languages/sas/comment_feature.test
@@ -0,0 +1,17 @@
+* foobar;
+foo; * foobar;
+/* foo
+bar */
+
+----------------------------------------------------
+
+[
+	["comment", "* foobar;"],
+	"\r\nfoo", ["punctuation", ";"],
+	["comment", "* foobar;"],
+	["comment", "/* foo\r\nbar */"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/tests/languages/sas/datalines_feature.test b/tests/languages/sas/datalines_feature.test
new file mode 100644
index 0000000..48c32cf
--- /dev/null
+++ b/tests/languages/sas/datalines_feature.test
@@ -0,0 +1,38 @@
+datalines;
+1993 2,819 1,120 422 391 63 98
+1994 2,477 1,160 500 172 47 70
+;
+
+lines;
+foo bar baz
+;
+
+cards;
+foo
+bar
+baz
+;
+
+----------------------------------------------------
+
+[
+	["datalines", [
+		["keyword", "datalines"], ["punctuation", ";"],
+		"\r\n1993 2,819 1,120 422 391 63 98\r\n1994 2,477 1,160 500 172 47 70\r\n",
+		["punctuation", ";"]
+	]],
+	["datalines", [
+		["keyword", "lines"], ["punctuation", ";"],
+		"\r\nfoo bar baz\r\n",
+		["punctuation", ";"]
+	]],
+	["datalines", [
+		["keyword", "cards"], ["punctuation", ";"],
+		"\r\nfoo\r\nbar\r\nbaz\r\n",
+		["punctuation", ";"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for datalines.
\ No newline at end of file
diff --git a/tests/languages/sas/datetime_feature.test b/tests/languages/sas/datetime_feature.test
new file mode 100644
index 0000000..86f8d48
--- /dev/null
+++ b/tests/languages/sas/datetime_feature.test
@@ -0,0 +1,15 @@
+'1jan2013'd
+'9:25:19pm't
+'18jan2003:9:27:05am'dt
+
+----------------------------------------------------
+
+[
+	["datetime", "'1jan2013'd"],
+	["datetime", "'9:25:19pm't"],
+	["datetime", "'18jan2003:9:27:05am'dt"]
+]
+
+----------------------------------------------------
+
+Checks for date, times and datetimes.
\ No newline at end of file
diff --git a/tests/languages/sas/keyword_feature.test b/tests/languages/sas/keyword_feature.test
new file mode 100644
index 0000000..dcc5a46
--- /dev/null
+++ b/tests/languages/sas/keyword_feature.test
@@ -0,0 +1,13 @@
+data else format if
+input proc run then
+
+----------------------------------------------------
+
+[
+	["keyword", "data"], ["keyword", "else"], ["keyword", "format"], ["keyword", "if"],
+	["keyword", "input"], ["keyword", "proc"], ["keyword", "run"], ["keyword", "then"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/tests/languages/sas/number_feature.test b/tests/languages/sas/number_feature.test
new file mode 100644
index 0000000..cf55129
--- /dev/null
+++ b/tests/languages/sas/number_feature.test
@@ -0,0 +1,21 @@
+42
+3.14159
+3.2e10
+0.4e-8
+1.4E+2
+BadFacex
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "3.2e10"],
+	["number", "0.4e-8"],
+	["number", "1.4E+2"],
+	["number", "BadFacex"]
+]
+
+----------------------------------------------------
+
+Checks for decimal and hexadecimal numbers.
\ No newline at end of file
diff --git a/tests/languages/sas/operator_feature.test b/tests/languages/sas/operator_feature.test
new file mode 100644
index 0000000..7554862
--- /dev/null
+++ b/tests/languages/sas/operator_feature.test
@@ -0,0 +1,37 @@
+* **
+| ||
+! !!
+¦ ¦¦
+< <> <=
+> >< >=
+~ ~=
+¬ ¬=
+^ ^=
+= / +
+- &
+
+eq ne gt lt
+ge le in not
+
+----------------------------------------------------
+
+[
+	["operator", "*"], ["operator", "**"],
+	["operator", "|"], ["operator", "||"],
+	["operator", "!"], ["operator", "!!"],
+	["operator", "¦"], ["operator", "¦¦"],
+	["operator", "<"], ["operator", "<>"], ["operator", "<="],
+	["operator", ">"], ["operator", "><"], ["operator", ">="],
+	["operator", "~"], ["operator", "~="],
+	["operator", "¬"], ["operator", "¬="],
+	["operator", "^"], ["operator", "^="],
+	["operator", "="], ["operator", "/"], ["operator", "+"],
+	["operator", "-"], ["operator", "&"],
+
+	["operator", "eq"], ["operator", "ne"], ["operator", "gt"], ["operator", "lt"],
+	["operator", "ge"], ["operator", "le"], ["operator", "in"], ["operator", "not"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/tests/languages/sas/string_feature.test b/tests/languages/sas/string_feature.test
new file mode 100644
index 0000000..9e8990b
--- /dev/null
+++ b/tests/languages/sas/string_feature.test
@@ -0,0 +1,23 @@
+""
+"fo""o"
+"foo
+bar"
+''
+'fo''o'
+'foo
+bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo\"\"o\""],
+	["string", "\"foo\r\nbar\""],
+	["string", "''"],
+	["string", "'fo''o'"],
+	["string", "'foo\r\nbar'"]
+]
+
+----------------------------------------------------
+
+Checks for single-quoted and double-quoted strings.
\ No newline at end of file