from __future__ import annotations
def test_when_cond_val_otherwise_returns_column() -> None:
import robin_sparkless as rs
F = rs
spark = F.SparkSession.builder().app_name("repro").get_or_create()
data = [{"a": 1}, {"a": -1}, {"a": 0}]
schema = [("a", "int")]
df = spark.createDataFrame(data, schema)
expr = F.when(F.col("a").gt(F.lit(0)), F.lit(1)).otherwise(F.lit(0))
out = df.with_column("x", expr).collect()
assert out == [
{"a": 1, "x": 1},
{"a": -1, "x": 0},
{"a": 0, "x": 0},
]
def test_when_cond_val_otherwise_operator_syntax() -> None:
import robin_sparkless as rs
F = rs
spark = F.SparkSession.builder().app_name("repro").get_or_create()
data = [{"a": 1}, {"a": -1}, {"a": 0}]
schema = [("a", "int")]
df = spark.createDataFrame(data, schema)
expr = F.when(F.col("a") > F.lit(0), F.lit(1)).otherwise(F.lit(0))
out = df.with_column("x", expr).collect()
assert out == [
{"a": 1, "x": 1},
{"a": -1, "x": 0},
{"a": 0, "x": 0},
]