/// <summary> /// Load and return the diabetes dataset (regression). /// ============== ================== /// Samples total 442 /// Dimensionality 10 /// Features real, -.2 < x < .2 /// Targets integer 25 - 346 /// ============== ================== /// </summary> /// <returns> /// Instance of <see cref="DiabetesDataset"/> class. /// </returns> public static DiabetesDataset Load() { var reader = new DelimitedReader { Sparse = false, Delimiter = " " }; var assembly = Assembly.GetAssembly(typeof(DiabetesDataset)); using (var datastream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.diabetes_data.csv.gz")) using (var targetstream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.diabetes_target.csv.gz")) { var data = reader.ReadMatrix<double>(new GZipStream(datastream, CompressionMode.Decompress)); var target = reader.ReadMatrix<double>(new GZipStream(targetstream, CompressionMode.Decompress)); return new DiabetesDataset { Data = data, Target = target.Column(0) }; } }
/// <summary> /// Load and return the digits dataset (classification). /// Each datapoint is a 8x8 image of a digit. /// ================= ============== /// Classes 10 /// Samples per class ~180 /// Samples total 1797 /// Dimensionality 64 /// Features integers 0-16 /// ================= ============== /// </summary> /// <returns>Instance of <see cref="DigitsDataset"/>.</returns> public static DigitsDataset Load() { var reader = new DelimitedReader { Sparse = false, Delimiter = " " }; var assembly = Assembly.GetAssembly(typeof(DigitsDataset)); string descr; using (var sr = new StreamReader(assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.digits.rst"))) { descr = sr.ReadToEnd(); } using (var datastream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.digits.csv.gz")) { var data = reader.ReadMatrix <double>(new GZipStream(datastream, CompressionMode.Decompress)); return(new DigitsDataset { Data = data.SubMatrix(0, data.RowCount, 0, data.ColumnCount - 1), Target = data.Column(data.ColumnCount - 1).ToArray().Cast <int>().ToArray(), Description = descr }); } }
public void CanParseCommaDelimitedData() { var data = "a,b,c" + Environment.NewLine + "1" + Environment.NewLine + "\"2.2\",0.3e1" + Environment.NewLine + "'4',5,6" + Environment.NewLine; var reader = new DelimitedReader<DenseMatrix>(',') { HasHeaderRow = true, CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParseTabDelimtedData() { var data = "1" + Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine + "'4'\t5\t6"; var reader = new DelimitedReader <SparseMatrix>('\t') { CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParseCommaDelimitedData() { const string data = @"a,b,c 1 ""2.2"",0.3e1 '4',5,6 "; var reader = new DelimitedReader<DenseMatrix>(',') { HasHeaderRow = true }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParseWhiteSpaceDelimitedData() { var data = "1" + Environment.NewLine + "\"(2.2,3.3)\" 0.3e1" + Environment.NewLine + "'4' 5 6" + Environment.NewLine; var reader = new DelimitedReader <UserDefinedMatrix> { CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0].Real); Assert.AreEqual(3.3, matrix[1, 0].Imaginary); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParsePeriodDelimitedData() { var data = "a.b.c" + Environment.NewLine + "1" + Environment.NewLine + "\"2,2\".0,3e1+0,2e1i" + Environment.NewLine + "'4,0'.5,0.6,0" + Environment.NewLine; var reader = new DelimitedReader <DenseMatrix>('.') { HasHeaderRow = true, CultureInfo = new CultureInfo("tr-TR") }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1].Real); Assert.AreEqual(2.0, matrix[1, 1].Imaginary); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParseCommaDelimitedData() { var data = "a,b,c" + Environment.NewLine + "(1,2)" + Environment.NewLine + "\"2.2\",0.3e1" + Environment.NewLine + "'(4,-5)',5,6" + Environment.NewLine; var reader = new DelimitedReader <DenseMatrix>(',') { HasHeaderRow = true, CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0].Real); Assert.AreEqual(2.0, matrix[0, 0].Imaginary); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0].Real); Assert.AreEqual(-5.0, matrix[2, 0].Imaginary); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParsePeriodDelimitedData() { const string data = @"a.b.c 1 ""2,2"".0,3e1 '4,0'.5,0.6,0 "; var reader = new DelimitedReader<DenseMatrix>('.') { HasHeaderRow = true, CultureInfo = new CultureInfo("tr-TR") }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParseCommaDelimitedData() { var data = "a,b,c" + Environment.NewLine + "1" + Environment.NewLine + "\"2.2\",0.3e1" + Environment.NewLine + "'4',5,6" + Environment.NewLine; var reader = new DelimitedReader { Delimiter = ",", HasHeaderRow = true, FormatProvider = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix <double>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParseComplex32CommaDelimitedData() { var data = "a,b,c" + Environment.NewLine + "(1,2)" + Environment.NewLine + "\"2.2\",0.3e1" + Environment.NewLine + "'(4,-5)',5,6" + Environment.NewLine; var reader = new DelimitedReader { Delimiter = ",", HasHeaderRow = true, FormatProvider = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix <Complex32>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0].Real); Assert.AreEqual(2.0f, matrix[0, 0].Imaginary); Assert.AreEqual((Complex32)0.0f, matrix[0, 1]); Assert.AreEqual((Complex32)0.0f, matrix[0, 2]); Assert.AreEqual((Complex32)2.2f, matrix[1, 0]); Assert.AreEqual((Complex32)3.0f, matrix[1, 1]); Assert.AreEqual((Complex32)0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0].Real); Assert.AreEqual(-5.0f, matrix[2, 0].Imaginary); Assert.AreEqual((Complex32)5.0f, matrix[2, 1]); Assert.AreEqual((Complex32)6.0f, matrix[2, 2]); }
public void CanParsePeriodDelimitedData() { var data = "a.b.c" + Environment.NewLine + "1" + Environment.NewLine + "\"2,2\".0,3e1" + Environment.NewLine + "'4,0'.5,0.6,0" + Environment.NewLine; var reader = new DelimitedReader { Delimiter = ".", HasHeaderRow = true, FormatProvider = new CultureInfo("tr-TR") }; var matrix = reader.ReadMatrix <double>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }
public void CanParseWhiteSpaceDelimitedData() { var data = "1" + Environment.NewLine + "\"2.2\" 0.3e1" + Environment.NewLine + "'4' 5 6" + Environment.NewLine; var reader = new DelimitedReader { FormatProvider = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix <float>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
/// <summary> /// Load and return the diabetes dataset (regression). /// ============== ================== /// Samples total 442 /// Dimensionality 10 /// Features real, -.2 < x < .2 /// Targets integer 25 - 346 /// ============== ================== /// </summary> /// <returns> /// Instance of <see cref="DiabetesDataset"/> class. /// </returns> public static DiabetesDataset Load() { var reader = new DelimitedReader { Sparse = false, Delimiter = " " }; var assembly = Assembly.GetAssembly(typeof(DiabetesDataset)); using (var datastream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.diabetes_data.csv.gz")) using (var targetstream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.diabetes_target.csv.gz")) { var data = reader.ReadMatrix <double>(new GZipStream(datastream, CompressionMode.Decompress)); var target = reader.ReadMatrix <double>(new GZipStream(targetstream, CompressionMode.Decompress)); return(new DiabetesDataset { Data = data, Target = target.Column(0) }); } }
/// <summary> /// Load and return the digits dataset (classification). /// Each datapoint is a 8x8 image of a digit. /// ================= ============== /// Classes 10 /// Samples per class ~180 /// Samples total 1797 /// Dimensionality 64 /// Features integers 0-16 /// ================= ============== /// </summary> /// <returns>Instance of <see cref="DigitsDataset"/>.</returns> public static DigitsDataset Load() { var reader = new DelimitedReader { Sparse = false, Delimiter = " " }; var assembly = Assembly.GetAssembly(typeof(DigitsDataset)); string descr; using (var sr = new StreamReader(assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.digits.rst"))) { descr = sr.ReadToEnd(); } using (var datastream = assembly.GetManifestResourceStream("Sharpkit.Learn.Datasets.Data.digits.csv.gz")) { var data = reader.ReadMatrix<double>(new GZipStream(datastream, CompressionMode.Decompress)); return new DigitsDataset { Data = data.SubMatrix(0, data.RowCount, 0, data.ColumnCount - 1), Target = data.Column(data.ColumnCount - 1).ToArray().Cast<int>().ToArray(), Description = descr }; } }
public void CanParseWhiteSpaceDelimitedData() { var data = "1" + Environment.NewLine + "\"2.2\" 0.3e1" + Environment.NewLine + "'4' 5 6" + Environment.NewLine; var reader = new DelimitedReader<UserDefinedMatrix> { CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParseComplex32CommaDelimitedData() { var data = "a,b,c" + Environment.NewLine + "(1,2)" + Environment.NewLine + "\"2.2\",0.3e1" + Environment.NewLine + "'(4,-5)',5,6" + Environment.NewLine; var reader = new DelimitedReader { Delimiter = ",", HasHeaderRow = true, FormatProvider = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix<Complex32>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0].Real); Assert.AreEqual(2.0f, matrix[0, 0].Imaginary); Assert.AreEqual((Complex32)0.0f, matrix[0, 1]); Assert.AreEqual((Complex32)0.0f, matrix[0, 2]); Assert.AreEqual((Complex32)2.2f, matrix[1, 0]); Assert.AreEqual((Complex32)3.0f, matrix[1, 1]); Assert.AreEqual((Complex32)0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0].Real); Assert.AreEqual(-5.0f, matrix[2, 0].Imaginary); Assert.AreEqual((Complex32)5.0f, matrix[2, 1]); Assert.AreEqual((Complex32)6.0f, matrix[2, 2]); }
public void CanParseWhiteSpaceDelimitedData() { const string data = @"1 ""2.2"" 0.3e1 '4' 5 6 "; var reader = new DelimitedReader<UserDefinedMatrix>(); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParsePeriodDelimitedData() { var data = "a.b.c" + Environment.NewLine + "1" + Environment.NewLine + "\"2,2\".0,3e1+0,2e1i" + Environment.NewLine + "'4,0'.5,0.6,0" + Environment.NewLine; var reader = new DelimitedReader<DenseMatrix>('.') { HasHeaderRow = true, CultureInfo = new CultureInfo("tr-TR") }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual((Complex32)1.0f, matrix[0, 0]); Assert.AreEqual((Complex32)0.0f, matrix[0, 1]); Assert.AreEqual((Complex32)0.0f, matrix[0, 2]); Assert.AreEqual((Complex32)2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1].Real); Assert.AreEqual(2.0f, matrix[1, 1].Imaginary); Assert.AreEqual((Complex32)0.0f, matrix[1, 2]); Assert.AreEqual((Complex32)4.0f, matrix[2, 0]); Assert.AreEqual((Complex32)5.0f, matrix[2, 1]); Assert.AreEqual((Complex32)6.0f, matrix[2, 2]); }
public void CanParseTabDelimitedData() { var data = "1" + Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine + "'4'\t5\t6"; var reader = new DelimitedReader<SparseMatrix>('\t') { CultureInfo = CultureInfo.InvariantCulture }; var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual((Complex32)1.0f, matrix[0, 0]); Assert.AreEqual((Complex32)0.0f, matrix[0, 1]); Assert.AreEqual((Complex32)0.0f, matrix[0, 2]); Assert.AreEqual((Complex32)2.2f, matrix[1, 0]); Assert.AreEqual((Complex32)3.0f, matrix[1, 1]); Assert.AreEqual((Complex32)0.0f, matrix[1, 2]); Assert.AreEqual((Complex32)4.0f, matrix[2, 0]); Assert.AreEqual((Complex32)5.0f, matrix[2, 1]); Assert.AreEqual((Complex32)6.0f, matrix[2, 2]); }
public void CanParseTabDelimtedData() { var data = "1" + Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine + "'4'\t5\t6"; var reader = new DelimitedReader<SparseMatrix>('\t'); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0f, matrix[0, 0]); Assert.AreEqual(0.0f, matrix[0, 1]); Assert.AreEqual(0.0f, matrix[0, 2]); Assert.AreEqual(2.2f, matrix[1, 0]); Assert.AreEqual(3.0f, matrix[1, 1]); Assert.AreEqual(0.0f, matrix[1, 2]); Assert.AreEqual(4.0f, matrix[2, 0]); Assert.AreEqual(5.0f, matrix[2, 1]); Assert.AreEqual(6.0f, matrix[2, 2]); }
public void CanParsePeriodDelimitedData() { var data = "a.b.c" + Environment.NewLine + "1" + Environment.NewLine + "\"2,2\".0,3e1" + Environment.NewLine + "'4,0'.5,0.6,0" + Environment.NewLine; var reader = new DelimitedReader { Delimiter = ".", HasHeaderRow = true, FormatProvider = new CultureInfo("tr-TR") }; var matrix = reader.ReadMatrix<double>(new MemoryStream(Encoding.UTF8.GetBytes(data))); Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(1.0, matrix[0, 0]); Assert.AreEqual(0.0, matrix[0, 1]); Assert.AreEqual(0.0, matrix[0, 2]); Assert.AreEqual(2.2, matrix[1, 0]); Assert.AreEqual(3.0, matrix[1, 1]); Assert.AreEqual(0.0, matrix[1, 2]); Assert.AreEqual(4.0, matrix[2, 0]); Assert.AreEqual(5.0, matrix[2, 1]); Assert.AreEqual(6.0, matrix[2, 2]); }