#!/usr/bin/ruby
#
## Tests for multi-line expressions
#
say 42 \
+ 9 \
* 3
var a = 42 \
+ 9 \
* 3
assert_eq(a, 69)
var b = (
42 \
+ 9 \
-> * 3
)
assert_eq(b, 153)
assert_eq(1 + 1 * 9, 18)
assert_eq(1 + 1 .* 9, 10)
var c = (
42 \.
+ 4 \->
* 9 \->
- 3
)
assert_eq(c, 411)
var d = (
42 .
+ 4 ->
* 9 ->
- 3 .
* 2
)
assert_eq(d, 408)
assert_eq(
40 \.
+ 2 \.
* 3 \->
+ 1,
40 + (2 * 3) + 1
)
assert_eq(
40 \.
+ 2 \->
* 3 \.
+ 1,
(40 + 2) * (3 + 1)
)
assert_eq(
40 \.
+ 2 \.
* 3 \.
+ 1,
40 + (2 * (3 + 1))
)
assert_eq(
40 \
+ 2 \->
* 3 \->
+ 1,
((40 + 2) * 3) + 1
)
assert_eq(
40 ->
+ 2 .
* 3 ->
+ 1,
40 + (2 * 3) + 1
)
assert_eq(
40 \->
+ 2 \->
* 3 \->
+ 1,
((40 + 2) * 3) + 1
)
assert_eq(
"abc" .
uc .
reverse,
"CBA"
)
assert_eq(
"abc".uc \
.reverse \
.chars,
["C", "B", "A"]
)
## Means: 1 + (2 * 3)
assert_eq(1 + 2 \* 3, 7)
assert_eq(1 + 2 .* 3, 7)
## Means: (1 + 2) * 3
assert_eq(1 + 2 * 3, 9)
assert_eq(1 + 2 \->* 3, 9)
assert_eq(1 + 2 ->* 3, 9)
say "** Test passed!"