# Path: tests/markdown_test/test_utils.py
# class MarkdownTest(TemplarTest):
#     def setUp(self):
#         pass
# 
#     def tearDown(self):
#         pass
# 
#     def assertMarkdown(self, markdown, output):
#         markdown = self.dedent(markdown)
#         output = self.dedent(output)
#         try:
#             self.assertEqual(output + '\n', convert(markdown) + '\n')
#         except AssertionError:
#             raise
# 
#     def assertMarkdownNotEqual(self, markdown, output):
#         markdown = self.dedent(markdown)
#         output = self.dedent(output)
#         try:
#             self.assertNotEqual(output, convert(markdown))
#         except AssertionError:
#             raise
# 
#     def assertMarkdownIgnoreWS(self, markdown, output):
#         markdown = self.dedent(markdown)
#         try:
#             self.assertEqual(self.ignoreWhitespace(output),
#                              self.ignoreWhitespace(convert(markdown)))
#         except AssertionError:
#             raise


from tests.markdown_test.test_utils import MarkdownTest
    # def testWhitespace(self):
    #     text = "This is ** not a strong **"
    #     expect = "<p>This is ** not a strong **</p>"
    #     self.assertEqual(expect, convert(text))

    #     text = "This is __ not a strong __"
    #     expect = "<p>This is __ not a strong __</p>"
    #     self.assertEqual(expect, convert(text))

    def testNewline(self):
        text = "This **is a\nstrong** here"
        expect = "<p>This <strong>is a\nstrong</strong> here</p>"
        self.assertMarkdown(text, expect)

    # TODO Original Markdown does not specify the following behavior
    # def testMixedDelimiter(self):
    #     text = "This **is not a strong__ here"
    #     expect = "<p>This **is not a strong__ here</p>"
    #     self.assertEqual(expect, convert(text))

    def testUnderscoreInAsterisk(self):
        text = "This **is a strong__ here**"
        expect = "<p>This <strong>is a strong__ here</strong></p>"
        self.assertMarkdown(text, expect)

    def testAsteriskInStrong(self):
        text = "This **is a strong* here**"
        expect = "<p>This <strong>is a strong* here</strong></p>"
        self.assertMarkdown(text, expect)


# Path: tests/markdown_test/test_utils.py
# class MarkdownTest(TemplarTest):
#     def setUp(self):
#         pass
# 
#     def tearDown(self):
#         pass
# 
#     def assertMarkdown(self, markdown, output):
#         markdown = self.dedent(markdown)
#         output = self.dedent(output)
#         try:
#             self.assertEqual(output + '\n', convert(markdown) + '\n')
#         except AssertionError:
#             raise
# 
#     def assertMarkdownNotEqual(self, markdown, output):
#         markdown = self.dedent(markdown)
#         output = self.dedent(output)
#         try:
#             self.assertNotEqual(output, convert(markdown))
#         except AssertionError:
#             raise
# 
#     def assertMarkdownIgnoreWS(self, markdown, output):
#         markdown = self.dedent(markdown)
#         try:
#             self.assertEqual(self.ignoreWhitespace(output),
#                              self.ignoreWhitespace(convert(markdown)))
#         except AssertionError:
#             raise


# Path: tests/markdown_test/emphasis_test.py
from tests.markdown_test.test_utils import MarkdownTest

    # def testWhitespace(self):
    #     text = "This is ** not a strong **"
    #     expect = "<p>This is ** not a strong **</p>"
    #     self.assertEqual(expect, convert(text))

    #     text = "This is __ not a strong __"
    #     expect = "<p>This is __ not a strong __</p>"
    #     self.assertEqual(expect, convert(text))

    def testNewline(self):
        text = "This **is a\nstrong** here"
        expect = "<p>This <strong>is a\nstrong</strong> here</p>"
        self.assertMarkdown(text, expect)

    # TODO Original Markdown does not specify the following behavior
    # def testMixedDelimiter(self):
    #     text = "This **is not a strong__ here"
    #     expect = "<p>This **is not a strong__ here</p>"
    #     self.assertEqual(expect, convert(text))

    def testUnderscoreInAsterisk(self):
        text = "This **is a strong__ here**"
        expect = "<p>This <strong>is a strong__ here</strong></p>"
        self.assertMarkdown(text, expect)

    def testAsteriskInStrong(self):
        text = "This **is a strong* here**"
        expect = "<p>This <strong>is a strong* here</strong></p>"
        self.assertMarkdown(text, expect)


class StrongEmTest(MarkdownTest):