コード例 #1
0
        public void Test15RandomMultiple()
        {
            const int length = 100;

            for (var i = 0; i < 1000; ++i)
            {
                var strings = Enumerable.Range(0, _rnd.Next(2, 10))
                              .Select(_ => MakeRandomString(length)).ToArray();
                var nst       = new SuffixTreeNaive();
                var st        = new SuffixTree();
                var stCompact = new SuffixTree();
                foreach (var s in strings)
                {
                    nst.Add(s);
                    st.Add(s);
                    stCompact.Add(s);
                    stCompact.Compact();
                }
                var expected = SuffixTreeEncoder.Encode(nst);
                var result   = SuffixTreeEncoder.Encode(st);
                Assert.That(result, Is.EqualTo(expected));
                result = SuffixTreeEncoder.Encode(stCompact);
                Assert.That(result, Is.EqualTo(expected));
            }
        }
コード例 #2
0
        public void Test14RandomSingle()
        {
            const int length = 500;

            for (var i = 0; i < 1000; ++i)
            {
                var nst = new SuffixTreeNaive();
                var s   = MakeRandomString(length);
                nst.Add(s);
                var expected = SuffixTreeEncoder.Encode(nst);
                var st       = new SuffixTree();
                st.Add(s);
                var result = SuffixTreeEncoder.Encode(st);
                Assert.That(result, Is.EqualTo(expected), "String={0}\r\nExpected={1}\r\nReal={2}", s, expected, result);
            }
        }