forked from Mirror/wren
Reorganize tests and benchmark scripts.
Mainly to get rid of one top level directory. But this will also be useful when there are tests of the embedding API.
This commit is contained in:
1
test/language/conditional/conditional_in_then.wren
Normal file
1
test/language/conditional/conditional_in_then.wren
Normal file
@ -0,0 +1 @@
|
||||
1 ? 2 ? 3 : 4 : 5 // expect error
|
||||
2
test/language/conditional/missing_colon.wren
Normal file
2
test/language/conditional/missing_colon.wren
Normal file
@ -0,0 +1,2 @@
|
||||
true ? 1 // expect error
|
||||
"next expression"
|
||||
1
test/language/conditional/missing_condition.wren
Normal file
1
test/language/conditional/missing_condition.wren
Normal file
@ -0,0 +1 @@
|
||||
? 1 : 2 // expect error
|
||||
1
test/language/conditional/missing_else.wren
Normal file
1
test/language/conditional/missing_else.wren
Normal file
@ -0,0 +1 @@
|
||||
(true ? 1 :) // expect error
|
||||
1
test/language/conditional/missing_question.wren
Normal file
1
test/language/conditional/missing_question.wren
Normal file
@ -0,0 +1 @@
|
||||
true 1 : 2 // expect error
|
||||
1
test/language/conditional/missing_then.wren
Normal file
1
test/language/conditional/missing_then.wren
Normal file
@ -0,0 +1 @@
|
||||
(true ? : 2) // expect error
|
||||
7
test/language/conditional/newlines.wren
Normal file
7
test/language/conditional/newlines.wren
Normal file
@ -0,0 +1,7 @@
|
||||
// Newline after '?'.
|
||||
IO.print(true ?
|
||||
"yes" : "no") // expect: yes
|
||||
|
||||
// Newline after ':'.
|
||||
IO.print(false ? "yes" :
|
||||
"no") // expect: no
|
||||
55
test/language/conditional/precedence.wren
Normal file
55
test/language/conditional/precedence.wren
Normal file
@ -0,0 +1,55 @@
|
||||
class Foo {
|
||||
static bar { true }
|
||||
static baz { 1 }
|
||||
}
|
||||
|
||||
// Condition precedence.
|
||||
IO.print(true ? 1 : 2) // expect: 1
|
||||
IO.print((true) ? 1 : 2) // expect: 1
|
||||
IO.print([true][0] ? 1 : 2) // expect: 1
|
||||
IO.print(Foo.bar ? 1 : 2) // expect: 1
|
||||
IO.print(3..4 ? 1 : 2) // expect: 1
|
||||
IO.print(3 * 4 ? 1 : 2) // expect: 1
|
||||
IO.print(3 + 4 ? 1 : 2) // expect: 1
|
||||
IO.print(true || false ? 1 : 2) // expect: 1
|
||||
IO.print(!false ? 1 : 2) // expect: 1
|
||||
IO.print(~0 ? 1 : 2) // expect: 1
|
||||
IO.print(3 is Num ? 1 : 2) // expect: 1
|
||||
IO.print(new Foo ? 1 : 2) // expect: 1
|
||||
|
||||
var a = 0
|
||||
IO.print(a = 3 ? 1 : 2) // expect: 1
|
||||
IO.print(a) // expect: 1
|
||||
|
||||
// Then branch precedence.
|
||||
IO.print(true ? (1) : 2) // expect: 1
|
||||
IO.print(true ? [1][0] : 2) // expect: 1
|
||||
IO.print(true ? Foo.baz : 2) // expect: 1
|
||||
IO.print(true ? 3..4 : 2) // expect: 3..4
|
||||
IO.print(true ? 3 * 4 : 2) // expect: 12
|
||||
IO.print(true ? 3 + 4 : 2) // expect: 7
|
||||
IO.print(true ? 1 || false : 2) // expect: 1
|
||||
IO.print(true ? !true : 2) // expect: false
|
||||
IO.print(true ? ~0 : 2) // expect: 4294967295
|
||||
IO.print(true ? 3 is Bool : 2) // expect: false
|
||||
IO.print(true ? new Foo : 2) // expect: instance of Foo
|
||||
|
||||
IO.print(true ? a = 5 : 2) // expect: 5
|
||||
IO.print(a) // expect: 5
|
||||
|
||||
// Else branch precedence.
|
||||
IO.print(false ? 1 : (2)) // expect: 2
|
||||
IO.print(false ? 1 : [2][0]) // expect: 2
|
||||
IO.print(false ? 2 : Foo.baz) // expect: 1
|
||||
IO.print(false ? 1 : 3..4) // expect: 3..4
|
||||
IO.print(false ? 1 : 3 * 4) // expect: 12
|
||||
IO.print(false ? 1 : 3 + 4) // expect: 7
|
||||
IO.print(false ? 1 : 2 || false) // expect: 2
|
||||
IO.print(false ? 1 : !false) // expect: true
|
||||
IO.print(false ? 1 : ~0) // expect: 4294967295
|
||||
IO.print(false ? 1 : 3 is Num) // expect: true
|
||||
IO.print(false ? 1 : new Foo) // expect: instance of Foo
|
||||
|
||||
// Associativity.
|
||||
IO.print(true ? 2 : true ? 4 : 5) // expect: 2
|
||||
IO.print(false ? 2 : true ? 4 : 5) // expect: 4
|
||||
2
test/language/conditional/short_circuit.wren
Normal file
2
test/language/conditional/short_circuit.wren
Normal file
@ -0,0 +1,2 @@
|
||||
true ? IO.print("ok") : IO.print("no") // expect: ok
|
||||
false ? IO.print("no") : IO.print("ok") // expect: ok
|
||||
Reference in New Issue
Block a user