public void TestTokenizeAndOptimize()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(tokenizer.Tokenize("Hello\r\nWorld!"))
            .Should().Equal(new MarkdownToken("Hello World!"));
        }
        public void TestOptimizeTwoTextTokens()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(new[]
            {
                new MarkdownToken("Foo"),
                new MarkdownToken("bar")
            }).Should().Equal(new MarkdownToken("Foobar"));
        }
        public void TestOptimizeTwoNoneTokens()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(new[]
            {
                new MarkdownToken(MarkdownTokenType.None),
                new MarkdownToken(MarkdownTokenType.None)
            }).Should().BeEmpty();
        }
        public void TestOptimizeSpaceTokens()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(new[]
            {
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace)
            }).Should().Equal(new MarkdownToken(MarkdownTokenType.Whitespace));
        }
        public void TestOptimizeSpaceAndTextTokens()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(new[]
            {
                new MarkdownToken("Foo"),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken(MarkdownTokenType.Whitespace),
                new MarkdownToken("b"),
                new MarkdownToken("a"),
                new MarkdownToken("r")
            }).Should().Equal(
                new MarkdownToken("Foo bar")
                );
        }
        public void TestOptimizeEmpty()
        {
            var tokenizer = new MarkdownTokenizer();

            tokenizer.Optimize(new MarkdownToken[0]).Should().BeEmpty();
        }