public void HeapSortWithRandomIntegerArray() { var sortedIndices = new[] { 5, 2, 8, 6, 0, 4, 1, 7, 3, 9 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { Assert.AreEqual(sortedIndices.Length - 1 - i, sortedIndices[i], "#01-" + i); } }
public void CanWriteTabDelimitedData() { var matrix = DenseMatrix.OfArray(new[,] {{new Complex32(1.1f, 1.1f), new Complex32(2.2f, 2.2f), new Complex32(3.3f, 3.3f)}, {new Complex32(4.4f, 4.4f), new Complex32(5.5f, 5.5f), new Complex32(6.6f, 6.6f)}, {new Complex32(7.7f, 7.7f), new Complex32(8.8f, 8.8f), new Complex32(9.9f, 9.9f)}}); var headers = new[] {"a", "b", "c"}; var writer = new DelimitedWriter('\t') { ColumnHeaders = headers, CultureInfo = CultureInfo.InvariantCulture }; var stream = new MemoryStream(); writer.WriteMatrix(matrix, stream); var data = stream.ToArray(); var reader = new StreamReader(new MemoryStream(data)); var text = reader.ReadToEnd(); var expected = "a\tb\tc" + Environment.NewLine + "(1.1, 1.1)\t(2.2, 2.2)\t(3.3, 3.3)" + Environment.NewLine + "(4.4, 4.4)\t(5.5, 5.5)\t(6.6, 6.6)" + Environment.NewLine + "(7.7, 7.7)\t(8.8, 8.8)\t(9.9, 9.9)"; Assert.AreEqual(expected, text); }
public void MatrixFrom1DArrayIsCopy() { // Sparse Matrix copies values from Complex32[], but no remember reference. var data = new[] {new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(2.0f, 1), new Complex32(2.0f, 1), new Complex32(2.0f, 1)}; var matrix = SparseMatrix.OfColumnMajor(3, 3, data); matrix[0, 0] = new Complex32(10.0f, 1); Assert.AreNotEqual(new Complex32(10.0f, 1), data[0]); }
public void HeapSortWithDuplicateEntries() { var sortedIndices = new[] { 1, 1, 1, 1, 2, 2, 2, 2, 3, 4 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { if (i == 0) { Assert.AreEqual(4, sortedIndices[i], "#01-" + i); } else { if (i == 1) { Assert.AreEqual(3, sortedIndices[i], "#01-" + i); } else { if (i < 6) { if (sortedIndices[i] != 2) { Assert.Fail("#01-" + i); } } else { if (sortedIndices[i] != 1) { Assert.Fail("#01-" + i); } } } } } }
public void HeapSortWithSpecialConstructedIntegerArray() { var sortedIndices = new[] { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { if (i == 0) { Assert.AreEqual(1, sortedIndices[i], "#01-" + i); break; } } sortedIndices = new[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { if (i == 0) { Assert.AreEqual(1, sortedIndices[i], "#02-" + i); break; } } sortedIndices = new[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { if (i == 0) { Assert.AreEqual(1, sortedIndices[i], "#03-" + i); break; } } sortedIndices = new[] { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { if (i == 9) { Assert.AreEqual(0, sortedIndices[i], "#04-" + i); break; } } }