from sparkless.testing import get_imports
_imports = get_imports()
SparkSession = _imports.SparkSession
F = _imports.F
Window = _imports.Window
def test_select_when_otherwise_alias() -> None:
spark = SparkSession.builder.appName("test_212").getOrCreate()
df = spark.createDataFrame([{"x": 1}, {"x": 2}])
result = df.select(
F.when(F.col("x") > F.lit(1), F.lit("yes"))
.otherwise(F.lit("no"))
.alias("result")
)
rows = result.collect()
assert len(rows) == 2
assert rows[0]["result"] == "no"
assert rows[1]["result"] == "yes"
def test_select_window_rank_alias() -> None:
spark = SparkSession.builder.appName("test_212").getOrCreate()
df = spark.createDataFrame([{"x": 10}, {"x": 20}, {"x": 20}])
window = Window.partitionBy("x").orderBy("x")
result = df.select(F.rank().over(window).alias("rank"))
rows = result.collect()
assert len(rows) == 3
assert all("rank" in r for r in rows)
assert all(isinstance(r["rank"], int) for r in rows)