public void ConcatTwoTest()
        {
            int start = 0;
            int end = chain.GetLength();

            var firstComplexChain = new ComplexChain(chain.Substring(start, end - 1));
            var secondComplexChain = new ComplexChain(chain.Substring(end - 1, end));
            ComplexChain concatChain = firstComplexChain.Concat(secondComplexChain.ToString());
            Assert.True(concatChain.Equals(chain));
        }
        public void FilteroutTest()
        {
            var chain = new ComplexChain(list);
            var filter = new Filter(chain);
            int hits = filter.FilterOut(str1);

            var sb = new StringBuilder();
            foreach (string s in list)
            {
                sb.Append(s);
            }

            string result = filter.GetChain().ToString();
            string buf = chain.ToString();
            Assert.True(buf.Length - result.Length == hits);

            filter = new Filter(chain);
            hits = filter.FilterOut(str2);

            filter.GetChain().ToString();
            chain.ToString();
            Assert.True(hits == 3);
        }
        public void ReplaceTest()
        {
            var chain = new ComplexChain(list);
            var filter = new Filter(chain);
            int hits = filter.Replace(str2, "-");

            var sb = new StringBuilder();
            foreach (string s in list)
            {
                sb.Append(s);
            }

            string result = filter.GetChain().ToString();
            string buf = chain.ToString();
            Assert.True(buf.Length - result.Length == hits);
        }