public void HeapSortWithDecreasingIntegerArray() { var sortedIndices = new [] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; IlutpElementSorter.SortIntegersDecreasing(sortedIndices); for (var i = 0; i < sortedIndices.Length; i++) { Assert.AreEqual(sortedIndices.Length - 1 - i, sortedIndices[i], "#01-" + i); } }
public void CanTryParseDoubleDenseVector() { var data = new[] { 1.2, 3.4, 5.6e-78 }; var text = String.Format( "{1}{0}{2}{0}{3}", CultureInfo.CurrentCulture.TextInfo.ListSeparator, data[0], data[1], data[2]); DenseVector vector; var ret = DenseVector.TryParse(text, out vector); Assert.IsTrue(ret); AssertHelpers.AlmostEqualList(data, (double[])vector, 1e-15); ret = DenseVector.TryParse(text, CultureInfo.CurrentCulture, out vector); Assert.IsTrue(ret); AssertHelpers.AlmostEqualList(data, (double[])vector, 1e-15); }
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; } } }
public void CanWriteTabDelimitedData() { var matrix = new UserDefinedMatrix(new[,] {{1.1, 2.2, 3.3}, {4.4, 5.5, 6.6}, {7.7, 8.8, 9.9}}); 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\t2.2\t3.3" + Environment.NewLine + "4.4\t5.5\t6.6" + Environment.NewLine + "7.7\t8.8\t9.9"; Assert.AreEqual(expected, text); }