Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import pandas as pd | |
| import pytest | |
| import ray | |
| from src.data import clean_text, stratify_split, tokenize | |
| def test_clean_text(text, expected): | |
| assert clean_text(text) == expected | |
| def test_clean_text_is_lowercase(): | |
| assert clean_text("UPPER CASE TEXT") == clean_text("UPPER CASE TEXT").lower() | |
| def test_stratify_split_preserves_class_proportions(): | |
| df = pd.DataFrame( | |
| { | |
| "text": [f"sample {i}" for i in range(100)], | |
| "label": [0] * 50 + [1] * 50, | |
| } | |
| ) | |
| ds = ray.data.from_pandas(df) | |
| train_ds, test_ds = stratify_split(ds, stratify="label", test_size=0.2) | |
| train_df = train_ds.to_pandas() | |
| test_df = test_ds.to_pandas() | |
| assert len(train_df) + len(test_df) == len(df) | |
| assert set(train_df["label"].unique()) == {0, 1} | |
| assert set(test_df["label"].unique()) == {0, 1} | |
| assert train_df["label"].value_counts()[0] == train_df["label"].value_counts()[1] | |
| assert test_df["label"].value_counts()[0] == test_df["label"].value_counts()[1] | |
| def test_tokenize_shapes_match_batch_size(): | |
| batch = pd.DataFrame({"text": ["hello world", "a longer sentence here"], "label": [0, 1]}) | |
| result = tokenize(batch) | |
| assert result["ids"].shape[0] == len(batch) | |
| assert result["masks"].shape == result["ids"].shape | |
| assert np.array_equal(result["targets"], np.array([0, 1])) | |