Example #1
0
        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]);
        }
Example #2
0
        public void BottomBin_Nominal()
        {
            int observedResults = BinUtilities.BottomBin(12517);

            Assert.Equal(7836, observedResults);
        }