from __future__ import annotations
from tests.fixtures.spark_imports import get_spark_imports
_imports = get_spark_imports()
F = _imports.F
def test_between_string_column_numeric_bounds_with_column(spark) -> None:
data = [{"col": "5"}, {"col": "10"}, {"col": "15"}]
df = spark.createDataFrame(data, ["col"])
df = df.withColumn("between", F.col("col").between(1, 20))
rows = df.collect()
assert len(rows) == 3
assert rows[0]["between"] is True
assert rows[1]["between"] is True
assert rows[2]["between"] is True
def test_between_string_column_numeric_bounds_filter(spark) -> None:
data = [{"col": "5"}, {"col": "10"}, {"col": "25"}]
df = spark.createDataFrame(data, ["col"])
out = df.filter(F.col("col").between(1, 20)).collect()
assert len(out) == 2 assert {r["col"] for r in out} == {"5", "10"}