from __future__ import annotations
import robin_sparkless as rs
def test_column_has_eq_null_safe() -> None:
c = rs.col("a")
assert hasattr(c, "eq_null_safe")
def test_filter_eq_null_safe_lit_none_returns_null_row() -> None:
spark = rs.SparkSession.builder().app_name("eq_null_safe").get_or_create()
data = [{"a": 1}, {"a": None}, {"a": 3}]
schema = [("a", "int")]
df = spark.createDataFrame(data, schema)
out = df.filter(rs.col("a").eq_null_safe(rs.lit(None))).collect()
assert len(out) == 1
assert out[0]["a"] is None
def test_filter_eq_null_safe_column_both_null_true() -> None:
spark = rs.SparkSession.builder().app_name("eq_null_safe").get_or_create()
data = [
{"a": 1, "b": 2},
{"a": None, "b": None},
{"a": 3, "b": 4},
]
schema = [("a", "int"), ("b", "int")]
df = spark.createDataFrame(data, schema)
out = df.filter(rs.col("a").eq_null_safe(rs.col("b"))).collect()
assert len(out) == 1
assert out[0]["a"] is None and out[0]["b"] is None