diff options
Diffstat (limited to 'ql/test/semantic_analysis/invalid')
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) +} |