public void SuffixTreeSimpleCharSet4Text21WithStep() { // arrange int step = 9879; int bufferSize = 1000; int textLength = 21; char[] alphabet = new char[] { 'a', 'c', 'g', 't' }; SuffixTreeAccumulator statisticAccumulator = new SuffixTreeAccumulator(new SuffixTreeSaver(), BruteForceStringCompare.AlgorythmName, textLength, bufferSize, alphabet.Length); statisticAccumulator.Delete(); int size = 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 text = new string(charSequence); SuffixTreeSimple suffixTreeSimple = new SuffixTreeSimple() { StatisticAccumulator = statisticAccumulator }; // act suffixTreeSimple.Execute(text); } statisticAccumulator.SaveRemain(); // assert }
public void SuffixTreeSimpleVariant3() { // arrange string text = "aaaca"; string expectedTree = "[0-0]([0-0]([5-5](),[1-1]([2-5](),[3-5]()),[3-5]()),[3-5]())"; SuffixTreeSimple suffixTree = new SuffixTreeSimple() { StatisticAccumulator = new FakeSuffixTreeAccumulator() }; // act suffixTree.Execute(text); // assert var result = suffixTree.NodePresentationAsString(); Assert.AreEqual(result, expectedTree, "Wrong tree."); }
//-------------------------------------------------------------------------------------- protected override bool MakeAction() { if (_fCurrentPosition == _fSize - 1 && --_stepCounter == 0) { string text = new string(_fCurrentSet.Select(i => _charSet[i]).ToArray()); SuffixTreeSimple suffixTreeSimple = new SuffixTreeSimple() { StatisticAccumulator = _statisticAccumulator }; // act suffixTreeSimple.Execute(text); // assert _stepCounter = _step; } return(false); }