# REPL parity test cases
# Format: input >>> expected_output
# Lines starting with # are comments
# Use "error:" prefix in expected_output for error cases

# --- Literals ---
42 >>> last: 42
0 >>> last: 0
-5 >>> last: -5
true >>> last: true
false >>> last: false
"hello" >>> last: "hello"

# --- Arithmetic ---
1 + 2 >>> last: 3
10 - 3 >>> last: 7
2 * 3 >>> last: 6
10 / 3 >>> last: 3
10 % 3 >>> last: 1

# --- String operations ---
String::length("hello") >>> last: 5
String::to_upper("hello") >>> last: "HELLO"
String::split("a,b,c", ",") >>> last: ["a", "b", "c"]

# --- Comparison ---
"foo" == "foo" >>> last: true
"foo" != "bar" >>> last: true
1 < 2 >>> last: true
2 > 1 >>> last: true

# --- Array operations ---
[1, 2, 3] >>> last: [1, 2, 3]
Array::length([1, 2, 3]) >>> last: 3
Array::map([1, 2, 3], x -> x * 2) >>> last: [2, 4, 6]

# --- Control flow ---
if true { 1 } else { 0 } >>> last: 1
if false { 1 } else { 0 } >>> last: 0

# --- Echo (posix mode) ---
echo hello >>> last: "hello"
echo hello world >>> last: "hello world"

# --- Error cases ---
1 + "hello" >>> error:
undefined_var >>> error:

# NOTE: Fs operations (exists, is_dir, is_file, Fs::*) are excluded from
# this shell parity set because the compiled backend cannot handle top-level
# Fs effects there yet. They are covered separately by CLI run/shell
# integration tests.
