//--------------------------------------------------------------------------------------
        public EnumerateIntegerTrangleForByBranchBoundary(int pLimit, int pLength, int pMinimumValue = 1, int pForwardAdditive = 0)
            : base(pLimit, pLength, pMinimumValue, pForwardAdditive)
        {
            int size = DNAMappingBase.DefineRestrictionMapSizeFromDifferencesSize(pLength);

            _statisticAccumulator = new DNAMappingStatisticAccumulator(new DNAMappingSaver(), size, pLimit);
            _statisticAccumulator.Delete("EnumerateDNAMappingBranchBoundary");
            _fBreakElement = 0;
        }
        //--------------------------------------------------------------------------------------
        public EnumerateDNAMappingByDifferences(int[] pairwiseDifferences, bool pIsAllResult = true)
            : base(pairwiseDifferences.Length, DNAMappingBase.DefineRestrictionMapSizeFromDifferencesSize(pairwiseDifferences.Length), 0, 1)
        {
            _originePairwiseDifferences = pairwiseDifferences.OrderBy(c => c).ToArray();
            var list = pairwiseDifferences.Distinct().ToList();

            list.Add(0);
            _pairwiseDifferences = list.OrderBy(c => c).ToArray();
            _isAllResult         = pIsAllResult;
            _fLimit = _pairwiseDifferences.Length - 1;
        }
        //--------------------------------------------------------------------------------------
        public EnumerateDNAMappingBranchBoundary(int[] pairwiseDifferences, bool pIsAllResult = true)
            : base(pairwiseDifferences.Length, DNAMappingBase.DefineRestrictionMapSizeFromDifferencesSize(pairwiseDifferences.Length), 0, 1)
        {
            _originePairwiseDifferences = pairwiseDifferences.OrderBy(d => d).Select(p => new DifferenceElement()
            {
                Data = p, IsIncluded = false
            }).ToArray();
            var list = pairwiseDifferences.Distinct().ToList();

            list.Add(0);
            _pairwiseDifferences = list.OrderBy(c => c).ToArray();
            _isAllResult         = pIsAllResult;
            _fLimit = _pairwiseDifferences.Length - 1;
        }
 //--------------------------------------------------------------------------------------
 public EnumerateDNAMappingByIntegerTrangle(int[] pairwiseDifferences, int pMinimumValue = 1, int pForwardAdditive = 1, bool pIsAllResult = true)
     : base(pairwiseDifferences.Max(), DNAMappingBase.DefineRestrictionMapSizeFromDifferencesSize(pairwiseDifferences.Length), pMinimumValue, pForwardAdditive)
 {
     _pairwiseDifferences = pairwiseDifferences.OrderBy(c => c).ToArray();
     _isAllResult         = pIsAllResult;
 }