using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; using System.Text; using Tensorflow.UnitTest; using static Tensorflow.Binding; namespace TensorFlowNET.UnitTest.Dataset { [TestClass] public class DatasetTest : EagerModeTestBase { [TestMethod] public void Range() { int iStep = 0; long value = 0; var dataset = tf.data.Dataset.range(3); foreach(var (step, item) in enumerate(dataset)) { Assert.AreEqual(iStep, step); iStep++; Assert.AreEqual(value, (long)item.Item1); value++; } } [TestMethod] public void Prefetch() { int iStep = 0; long value = 1; var dataset = tf.data.Dataset.range(1, 5, 2); dataset = dataset.prefetch(2); foreach (var (step, item) in enumerate(dataset)) { Assert.AreEqual(iStep, step); iStep++; Assert.AreEqual(value, (long)item.Item1); value += 2; } } [TestMethod] public void FromTensorSlices() { var X = tf.constant(new[] { 2013, 2014, 2015, 2016, 2017 }); var Y = tf.constant(new[] { 12000, 14000, 15000, 16500, 17500 }); var dataset = tf.data.Dataset.from_tensor_slices(X, Y); int n = 0; foreach (var (item_x, item_y) in dataset) { print($"x:{item_x.numpy()},y:{item_y.numpy()}"); n += 1; } Assert.AreEqual(5, n); } } }