aboutsummaryrefslogtreecommitdiff
path: root/ql/test/semantic_analysis/invalid
diff options
context:
space:
mode:
Diffstat (limited to 'ql/test/semantic_analysis/invalid')
-rw-r--r--ql/test/semantic_analysis/invalid/test001.ql9
-rw-r--r--ql/test/semantic_analysis/invalid/test002.ql9
-rw-r--r--ql/test/semantic_analysis/invalid/test003.ql13
-rw-r--r--ql/test/semantic_analysis/invalid/test004.ql11
-rw-r--r--ql/test/semantic_analysis/invalid/test005.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test006.ql7
-rw-r--r--ql/test/semantic_analysis/invalid/test007.ql9
-rw-r--r--ql/test/semantic_analysis/invalid/test008.ql7
-rw-r--r--ql/test/semantic_analysis/invalid/test009.ql7
-rw-r--r--ql/test/semantic_analysis/invalid/test010.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test011.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test012.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test013.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test014.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test015.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test016.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test017.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test018.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test019.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test020.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test021.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test022.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test023.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test024.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test025.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test026.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test027.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test028.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test029.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test030.ql7
-rw-r--r--ql/test/semantic_analysis/invalid/test031.ql5
-rw-r--r--ql/test/semantic_analysis/invalid/test032.ql5
32 files changed, 194 insertions, 0 deletions
diff --git a/ql/test/semantic_analysis/invalid/test001.ql b/ql/test/semantic_analysis/invalid/test001.ql
new file mode 100644
index 0000000..42b1b41
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test001.ql
@@ -0,0 +1,9 @@
+// Reference to unknown identifier in condition
+form testForm {
+ if (unknownIdentifier) {
+ "First Question"
+ anotherIdentifier : integer
+ }
+ "Second Question"
+ testIdentifier : boolean
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test002.ql b/ql/test/semantic_analysis/invalid/test002.ql
new file mode 100644
index 0000000..856447d
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test002.ql
@@ -0,0 +1,9 @@
+// Reference to unknown identifier in computed question
+form testForm {
+ "First Question"
+ testIdentifier : integer
+ "Second Question"
+ anotherIdentifier : integer = testIdentifier + unknownIdentifier
+}
+
+
diff --git a/ql/test/semantic_analysis/invalid/test003.ql b/ql/test/semantic_analysis/invalid/test003.ql
new file mode 100644
index 0000000..1491a85
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test003.ql
@@ -0,0 +1,13 @@
+// Reference to identifier in condition out of scope
+form testForm {
+ "First Question"
+ testIdentifier : boolean
+ if (testIdentifier) {
+ "Second Question"
+ anotherIdentifier : integer
+ }
+ if (anotherIdentifier) {
+ "Unreachable Question"
+ unreachableIdentifier : integer
+ }
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test004.ql b/ql/test/semantic_analysis/invalid/test004.ql
new file mode 100644
index 0000000..5ae3e94
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test004.ql
@@ -0,0 +1,11 @@
+// Reference to identifier in computed question out of scope
+form testForm {
+ "First Question"
+ testIdentifier : boolean
+ if (testIdentifier) {
+ "Second Question"
+ anotherIdentifier : integer
+ }
+ "Third Question"
+ unknownIdentifier : integer = anotherIdentifier + 1
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test005.ql b/ql/test/semantic_analysis/invalid/test005.ql
new file mode 100644
index 0000000..de066f2
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test005.ql
@@ -0,0 +1,5 @@
+// Identifier dependent on itself (reflexive)
+form testForm {
+ "First Question"
+ firstIdentifier : integer = firstIdentifier + 1
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test006.ql b/ql/test/semantic_analysis/invalid/test006.ql
new file mode 100644
index 0000000..12cf8f0
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test006.ql
@@ -0,0 +1,7 @@
+// Identifiers dependent on each other (symmetric)
+form testForm {
+ "First Question"
+ firstIdentifier : integer = secondIdentifier + 1
+ "Second Question"
+ secondIdentifier : integer = firstIdentifier + 1
+}
diff --git a/ql/test/semantic_analysis/invalid/test007.ql b/ql/test/semantic_analysis/invalid/test007.ql
new file mode 100644
index 0000000..08f4f5f
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test007.ql
@@ -0,0 +1,9 @@
+// Identifiers dependent on each other (transitive)
+form testForm {
+ "First Question"
+ firstIdentifier : integer = secondIdentifier + 1
+ "Second Question"
+ secondIdentifier : integer = thirdIdentifier + 1
+ "Third Question"
+ thirdIdentifier : integer = firstIdentifier + 1
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test008.ql b/ql/test/semantic_analysis/invalid/test008.ql
new file mode 100644
index 0000000..6c8a660
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test008.ql
@@ -0,0 +1,7 @@
+// Different questions with equal identifier
+form testForm {
+ "First Question"
+ someIdentifier : integer
+ "Second Question"
+ someIdentifier : decimal
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test009.ql b/ql/test/semantic_analysis/invalid/test009.ql
new file mode 100644
index 0000000..362a2b1
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test009.ql
@@ -0,0 +1,7 @@
+// Equal questions with different types
+form testForm {
+ "First Question"
+ someIdentifier : integer
+ "First Question"
+ someIdentifier : decimal
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test010.ql b/ql/test/semantic_analysis/invalid/test010.ql
new file mode 100644
index 0000000..30a03e2
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test010.ql
@@ -0,0 +1,5 @@
+// Incompatible types for addition operation
+form testForm {
+ "First Question"
+ someIdentifier : decimal = 10.0 + True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test011.ql b/ql/test/semantic_analysis/invalid/test011.ql
new file mode 100644
index 0000000..de59f13
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test011.ql
@@ -0,0 +1,5 @@
+// Incompatible types for subtraction operation
+form testForm {
+ "First Question"
+ someIdentifier : decimal = 10.0 - True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test012.ql b/ql/test/semantic_analysis/invalid/test012.ql
new file mode 100644
index 0000000..006bd0c
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test012.ql
@@ -0,0 +1,5 @@
+// Incompatible types for greater equals operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 >= True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test013.ql b/ql/test/semantic_analysis/invalid/test013.ql
new file mode 100644
index 0000000..2896f80
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test013.ql
@@ -0,0 +1,5 @@
+// Incompatible types for greater than operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 > True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test014.ql b/ql/test/semantic_analysis/invalid/test014.ql
new file mode 100644
index 0000000..b5b7774
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test014.ql
@@ -0,0 +1,5 @@
+// Incompatible types for less equals operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 <= True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test015.ql b/ql/test/semantic_analysis/invalid/test015.ql
new file mode 100644
index 0000000..6c52b37
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test015.ql
@@ -0,0 +1,5 @@
+// Incompatible types for less than operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 < True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test016.ql b/ql/test/semantic_analysis/invalid/test016.ql
new file mode 100644
index 0000000..dcf98ea
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test016.ql
@@ -0,0 +1,5 @@
+// Incompatible types for and operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 && True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test017.ql b/ql/test/semantic_analysis/invalid/test017.ql
new file mode 100644
index 0000000..9eef105
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test017.ql
@@ -0,0 +1,5 @@
+// Incompatible types for or operation
+form testForm {
+ "First Question"
+ someIdentifier : boolean = 10.0 || True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test018.ql b/ql/test/semantic_analysis/invalid/test018.ql
new file mode 100644
index 0000000..bd18cf9
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test018.ql
@@ -0,0 +1,5 @@
+// Incompatible types for multiplication operation
+form testForm {
+ "First Question"
+ someIdentifier : decimal = 10.0 * True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test019.ql b/ql/test/semantic_analysis/invalid/test019.ql
new file mode 100644
index 0000000..69a2c38
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test019.ql
@@ -0,0 +1,5 @@
+// Incompatible types for division operation
+form testForm {
+ "First Question"
+ someIdentifier : decimal = 10.0 / True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test020.ql b/ql/test/semantic_analysis/invalid/test020.ql
new file mode 100644
index 0000000..538bdf9
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test020.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for addition operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.1 + 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test021.ql b/ql/test/semantic_analysis/invalid/test021.ql
new file mode 100644
index 0000000..74e596d
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test021.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for subtraction operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.1 - 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test022.ql b/ql/test/semantic_analysis/invalid/test022.ql
new file mode 100644
index 0000000..9cf774a
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test022.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for greater equals operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.0 >= 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test023.ql b/ql/test/semantic_analysis/invalid/test023.ql
new file mode 100644
index 0000000..f7d674b
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test023.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for greater than operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.0 > 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test024.ql b/ql/test/semantic_analysis/invalid/test024.ql
new file mode 100644
index 0000000..f262f5c
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test024.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for less equals operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.0 <= 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test025.ql b/ql/test/semantic_analysis/invalid/test025.ql
new file mode 100644
index 0000000..ef823b5
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test025.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for less than operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.0 < 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test026.ql b/ql/test/semantic_analysis/invalid/test026.ql
new file mode 100644
index 0000000..b1e8a5b
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test026.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for and operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = True && True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test027.ql b/ql/test/semantic_analysis/invalid/test027.ql
new file mode 100644
index 0000000..262aa0e
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test027.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for or operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = False || True
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test028.ql b/ql/test/semantic_analysis/invalid/test028.ql
new file mode 100644
index 0000000..ea02ccd
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test028.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for multiplication operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.1 * 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test029.ql b/ql/test/semantic_analysis/invalid/test029.ql
new file mode 100644
index 0000000..23f3c78
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test029.ql
@@ -0,0 +1,5 @@
+// Incompatible result type for division operation
+form testForm {
+ "First Question"
+ someIdentifier : integer = 10.1 / 10
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test030.ql b/ql/test/semantic_analysis/invalid/test030.ql
new file mode 100644
index 0000000..3de208c
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test030.ql
@@ -0,0 +1,7 @@
+// Complex condition with incompatible types
+form testForm {
+ if ((15.5 >= 15) && ((3.0 * True) - 15 > -10 / 2)) {
+ "First Question"
+ someIdentifier : integer
+ }
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test031.ql b/ql/test/semantic_analysis/invalid/test031.ql
new file mode 100644
index 0000000..0d6f75c
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test031.ql
@@ -0,0 +1,5 @@
+// Complex computed question with incompatible types
+form testForm {
+ "First Question"
+ someIdentifier : boolean = (25.5 >= True) && ((10.0 / 3) - 15 < -10 * 2)
+} \ No newline at end of file
diff --git a/ql/test/semantic_analysis/invalid/test032.ql b/ql/test/semantic_analysis/invalid/test032.ql
new file mode 100644
index 0000000..9de5ff2
--- /dev/null
+++ b/ql/test/semantic_analysis/invalid/test032.ql
@@ -0,0 +1,5 @@
+// Complex computed question with incompatible result type
+form testForm {
+ "First Question"
+ someIdentifier : integer = (25.5 >= 10) && ((10.0 / 3) - 15 < -10 * 2)
+}