import json
import robin_sparkless as rs
def test_orderby_in_supported_plan_operations() -> None:
ops = rs.supported_plan_operations()
assert "orderBy" in ops
def test_execute_plan_with_orderby() -> None:
data = [{"x": 3}, {"x": 1}, {"x": 2}]
schema = [("x", "bigint")]
plan = [
{"op": "orderBy", "payload": {"columns": ["x"], "ascending": [True]}},
]
plan_json = json.dumps(plan)
df = rs._execute_plan(data, schema, plan_json)
rows = df.collect()
assert len(rows) == 3
assert [r["x"] for r in rows] == [1, 2, 3]
def test_execute_plan_orderby_desc() -> None:
data = [{"id": 1}, {"id": 2}, {"id": 3}]
schema = [("id", "bigint")]
plan = [
{"op": "orderBy", "payload": {"columns": ["id"], "ascending": [False]}},
]
plan_json = json.dumps(plan)
df = rs._execute_plan(data, schema, plan_json)
rows = df.collect()
assert [r["id"] for r in rows] == [3, 2, 1]