internal static ulong GetMinOffset(ReferenceSequence refSeq, int begin) { int bin = BinUtilities.FirstBin(Constants.NumLevels) + (begin >> Constants.MinShift); do { if (refSeq.IdToChunks.ContainsKey(bin)) { break; } int firstBin = (BinUtilities.ParentBin(bin) << 3) + 1; if (bin > firstBin) { bin--; } else { bin = BinUtilities.ParentBin(bin); } } while (bin != 0); int bottomBin = BinUtilities.BottomBin(bin); return(refSeq.LinearFileOffsets[bottomBin]); }
public void BottomBin_Nominal() { int observedResults = BinUtilities.BottomBin(12517); Assert.Equal(7836, observedResults); }