code: def test_table_td(self):
      self.assertMarkdownRenders(
          self.dedent(
              """
                  | A { .foo }  | *B*{ .foo } | C { } | D{ .foo }     | E { .foo } F |
                  |-------------|-------------|-------|---------------|--------------|
                  | a { .foo }  | *b*{ .foo } | c { } | d{ .foo }     | e { .foo } f |
                  | valid on td | inline      | empty | missing space | not at end   |
                  """
          ),
          self.dedent(
              """
                  <table>
                  <thead>
                  <tr>
                  <th class="foo">A</th>
                  <th><em class="foo">B</em></th>
                  <th>C { }</th>
                  <th>D{ .foo }</th>
                  <th>E { .foo } F</th>
                  </tr>
                  </thead>
                  <tbody>
                  <tr>
                  <td class="foo">a</td>
                  <td><em class="foo">b</em></td>
                  <td>c { }</td>
                  <td>d{ .foo }</td>
                  <td>e { .foo } f</td>
                  </tr>
                  <tr>
                  <td>valid on td</td>
                  <td>inline</td>
                  <td>empty</td>
                  <td>missing space</td>
                  <td>not at end</td>
                  </tr>
                  </tbody>
                  </table>
                  """
          ),
          extensions=["attr_list", "tables"],
      )
  
imports: from markdown.test_tools import TestCase
label_desc: Use image node_id 2 for calling the TestAttrList obj's underlying member method code with example usage: obj.test_table_td() without return types