//--------------------------------------------------------------------------------------
        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;
        }
示例#3
0
        public void ExecuteTest()
        {
            // arrange
            int[] excpectedResult     = new int[] { 0, 3, 6, 7 };
            int[] pairwiseDifferences = DNAMappingBase.ProduceMatrix(excpectedResult);
            EnumerateDNAMappingByIntegerTrangle enumeration = new EnumerateDNAMappingByIntegerTrangle(pairwiseDifferences, 0);

            // act
            enumeration.Execute();
            // assert
            var result = enumeration.ListOfSolution.FirstOrDefault(l => l.SequenceEqual(excpectedResult));

            Assert.IsNotNull(result, $"Expected result absent in solution list");
        }
        //--------------------------------------------------------------------------------------
        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 void ExecuteTest()
        {
            // arrange
            int[] excpectedResult     = new int[] { 0, 3, 6, 7 };
            int[] pairwiseDifferences = DNAMappingBase.ProduceMatrix(excpectedResult);
            EnumerateDNAMappingBranchBoundary enumeration = new EnumerateDNAMappingBranchBoundary(pairwiseDifferences)
            {
                StatisticAccumulator = new FakeDNAMappingStatisticAccumulator()
            };            // act

            enumeration.Execute();
            // assert
            var result = enumeration.ListOfSolution.FirstOrDefault(l => l.SequenceEqual(excpectedResult));

            Assert.IsNotNull(result, $"Expected result absent in solution list");
        }
 //--------------------------------------------------------------------------------------
 protected override bool MakeAction()
 {
     if (_fCurrentPosition == _fSize - 1)
     {
         var pairwiseDifferencesForCurrentSet = DNAMappingBase.ProduceMatrix(_fCurrentSet);
         if (_pairwiseDifferences.SequenceEqual(pairwiseDifferencesForCurrentSet.OrderBy(d => d)))
         {
             StatisticAccumulator.UpdateOptcountInc();
             if (_solution == null)
             {
                 _solution = _fCurrentSet.ToList();
             }
             _listOfSolution.Add(_fCurrentSet.ToList());
             return(!_isAllResult);
         }
     }
     return(false);
 }
        public void ExecuteTestCase2()
        {
            // arrange
            int[]  excpectedResult             = new int[] { 0, 3, 5, 8 };
            int[]  pairwiseDifferences         = DNAMappingBase.ProduceMatrix(excpectedResult);
            string pairwiseDifferencesAsString = string.Join(",", pairwiseDifferences.OrderBy(p => p));
            EnumerateDNAMappingByIntegerTrangle enumeration = new EnumerateDNAMappingByIntegerTrangle(pairwiseDifferences, 0)
            {
                StatisticAccumulator = new FakeDNAMappingStatisticAccumulator()
            };

            // act
            enumeration.Execute();
            // assert
            var result = enumeration.ListOfSolution.FirstOrDefault(l => l.SequenceEqual(excpectedResult));

            Assert.IsNotNull(result, $"Expected result absent in solution list");
        }
 //--------------------------------------------------------------------------------------
 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;
 }