Files
2026-07-13 13:17:40 +08:00

39 lines
1.3 KiB
Python

import sys
import pytest
import ray
from ray.data.tests.conftest import * # noqa
from ray.data.tests.test_util import _check_usage_record
from ray.data.tests.util import extract_values
from ray.tests.conftest import * # noqa
def test_from_tf_e2e(ray_start_regular_shared_2_cpus):
import tensorflow as tf
import tensorflow_datasets as tfds
tf_dataset = tfds.load("mnist", split=["train"], as_supervised=True)[0]
tf_dataset = tf_dataset.take(8) # Use subset to make test run faster.
ray_dataset = ray.data.from_tf(tf_dataset)
actual_data = extract_values("item", ray_dataset.take_all())
expected_data = list(tf_dataset)
assert len(actual_data) == len(expected_data)
for (expected_features, expected_label), (actual_features, actual_label) in zip(
expected_data, actual_data
):
tf.debugging.assert_equal(expected_features, actual_features)
tf.debugging.assert_equal(expected_label, actual_label)
# Check that metadata fetch is included in stats.
assert "FromItems" in ray_dataset.stats()
# Underlying implementation uses `FromItems` operator
assert ray_dataset._logical_plan.dag.name == "FromItems"
_check_usage_record(["FromItems"])
if __name__ == "__main__":
sys.exit(pytest.main(["-v", __file__]))