public void ReadSampleTest() { // http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html#iris MemoryStream file = new MemoryStream( Encoding.Default.GetBytes(Properties.Resources.iris_scale)); // Suppose we are going to read a sparse sample file containing // samples which have an actual dimension of 4. Since the samples // are in a sparse format, each entry in the file will probably // have a much lesser number of elements. int sampleSize = 4; // Create a new Sparse Sample Reader to read any given file, // passing the correct dense sample size in the constructor SparseSampleReader reader = new SparseSampleReader(file, Encoding.Default, sampleSize); // Declare some variables to receive each current sample int label = 0; string description; double[] sample; // Read a sample from the file sample = reader.ReadDense(out label, out description); Assert.AreEqual(1, label); Assert.AreEqual(String.Empty, description); Assert.AreEqual(4, sample.Length); Assert.AreEqual(-0.555556, sample[0], 0.0001); Assert.AreEqual(+0.250000, sample[1], 0.0001); Assert.AreEqual(-0.864407, sample[2], 0.0001); Assert.AreEqual(-0.916667, sample[3], 0.0001); sample = reader.ReadSparse(out label, out description); Assert.AreEqual(1, label); Assert.AreEqual(String.Empty, description); Assert.AreEqual(8, sample.Length); Assert.AreEqual(0, sample[0], 0.0001); Assert.AreEqual(-0.666667, sample[1], 0.0001); Assert.AreEqual(1, sample[2], 0.0001); Assert.AreEqual(-0.166667, sample[3], 0.0001); Assert.AreEqual(2, sample[4], 0.0001); Assert.AreEqual(-0.864407, sample[5], 0.0001); Assert.AreEqual(3, sample[6], 0.0001); Assert.AreEqual(-0.916667, sample[7], 0.0001); int count = 2; // Read all samples from the file while (!reader.EndOfStream) { sample = reader.ReadDense(out label, out description); Assert.IsTrue(label >= 0 && label <= 3); Assert.IsTrue(description == String.Empty); Assert.AreEqual(4, sample.Length); count++; } Assert.AreEqual(150, count); }
public void ReadAllTest() { MemoryStream file = new MemoryStream( Encoding.Default.GetBytes(Properties.Resources.iris_scale)); // Suppose we are going to read a sparse sample file containing // samples which have an actual dimension of 4. Since the samples // are in a sparse format, each entry in the file will probably // have a much lesser number of elements. int sampleSize = 4; // Create a new Sparse Sample Reader to read any given file, // passing the correct dense sample size in the constructor SparseSampleReader reader = new SparseSampleReader(file, Encoding.Default, sampleSize); // Declare a vector to obtain the label // of each of the samples in the file int[] labels = null; // Declare a vector to obtain the description (or comments) // about each of the samples in the file, if present. string[] descriptions = null; // Read the sparse samples and store them in a dense vector array double[][] samples = reader.ReadToEnd(out labels, out descriptions); Assert.AreEqual(150, samples.Length); for (int i = 0; i < 150; i++) { Assert.IsTrue(labels[i] >= 0 && labels[i] <= 3); Assert.IsTrue(descriptions[i] == String.Empty); Assert.AreEqual(4, samples[i].Length); } }