/// <summary> /// Check sorting data on an instance of <seealso cref="OfflineSorter"/>. /// </summary> private OfflineSorter.SortInfo CheckSort(OfflineSorter sort, byte[][] data) { FileInfo unsorted = WriteAll("unsorted", data); Array.Sort(data, unsignedByteOrderComparer); FileInfo golden = WriteAll("golden", data); FileInfo sorted = new FileInfo(Path.Combine(tempDir.FullName, "sorted")); OfflineSorter.SortInfo sortInfo = sort.Sort(unsorted, sorted); //System.out.println("Input size [MB]: " + unsorted.Length() / (1024 * 1024)); //System.out.println(sortInfo); AssertFilesIdentical(golden, sorted); return(sortInfo); }
public virtual void TestSmallRandom() { // Sort 20 mb worth of data with 1mb buffer. OfflineSorter.SortInfo sortInfo = CheckSort(new OfflineSorter(OfflineSorter.DEFAULT_COMPARER, OfflineSorter.BufferSize.Megabytes(1), OfflineSorter.DefaultTempDir(), OfflineSorter.MAX_TEMPFILES), GenerateRandom((int)OfflineSorter.MB * 20)); Assert.AreEqual(1, sortInfo.MergeRounds); }
public virtual void TestIntermediateMerges() { // Sort 20 mb worth of data with 1mb buffer, binary merging. OfflineSorter.SortInfo info = CheckSort(new OfflineSorter(OfflineSorter.DEFAULT_COMPARER, OfflineSorter.BufferSize.Megabytes(1), OfflineSorter.DefaultTempDir(), 2), GenerateRandom((int)OfflineSorter.MB * 20)); Assert.IsTrue(info.MergeRounds > 10); }