public void ProcessInputDataAndShiftTestLength7Number3Pattern4Step987() { // arrange int step = 98798; int bufferSize = 1000; int patternLength = 7; int textLength = 14; char[] alphabet = new char[] { 'a', 'c', 'g', 't' }; StringCompareAccumulator statisticAccumulator = new StringCompareAccumulator(new StringCompareSaver(), BoyerMooreComparer.AlgorythmNameBadSymbolAdv, patternLength, textLength, bufferSize, alphabet.Length); statisticAccumulator.Delete(); int size = patternLength + textLength; long max = 1L << (2 * size); long sequenceAsNumber = 0; int[] sequence = new int[size]; char[] charSequence = new char[size]; long[] masks = new long[size]; long mask = 3; for (int i = 0; i < size; i++) { masks[i] = mask; mask <<= 2; } // act while (sequenceAsNumber < max) { int shift = 0; for (int i = 0; i < size; i++) { sequence[i] = (int)((sequenceAsNumber & masks[i]) >> shift); shift += 2; } sequenceAsNumber += step; charSequence = sequence.Select(j => alphabet[j]).ToArray(); string pattern = new string(charSequence.Take(patternLength).ToArray()); string text = new string(charSequence.Skip(patternLength).Take(textLength).ToArray()); AndShift andShift = new AndShift() { StatisticAccumulator = statisticAccumulator }; // act andShift.FindSubstring(text, pattern); } statisticAccumulator.SaveRemain(); // assert }
//-------------------------------------------------------------------------------------- protected override bool MakeAction() { if (_fCurrentPosition == _fSize - 1 && --_stepCounter == 0) { var currentSequence = _fCurrentSet.Select(i => _charSet[i]).ToList(); string pattern = new string(currentSequence.Take(_patternLength).ToArray()); string text = new string(currentSequence.Skip(_patternLength).Take(_textLength).ToArray()); // act andShift.FindSubstring(text, pattern); // assert _stepCounter = _step; } return(false); }
public void AndShiftCase2Text() { // arrange char[] alphabet = new char[] { 'a', 'c' }; string pattern = "aaaaaa"; string text = "aaccaaaccaacacaa"; AndShift andShift = new AndShift() { StatisticAccumulator = new FakeStringCompareAccumulator() }; // act andShift.FindSubstring(text, pattern); // assert //string expected = "8,9,10"; // Assert.AreEqual(boyerMooreCompare.OutputPresentation, expected, $"Wrong result:{boyerMooreCompare.OutputPresentation}, expected:{expected}"); }