code: def test_option(self):
      self.assertEqual(
          parse("option[int32]", self.sym),
          ct.DataShape(ct.Option(ct.int32)),
      )
      self.assertEqual(
          parse("?int32", self.sym), ct.DataShape(ct.Option(ct.int32))
      )
      self.assertEqual(
          parse("2 * 3 * option[int32]", self.sym),
          ct.DataShape(ct.Fixed(2), ct.Fixed(3), ct.Option(ct.int32)),
      )
      self.assertEqual(
          parse("2 * 3 * ?int32", self.sym),
          ct.DataShape(ct.Fixed(2), ct.Fixed(3), ct.Option(ct.int32)),
      )
      self.assertEqual(
          parse("2 * option[3 * int32]", self.sym),
          ct.DataShape(
              ct.Fixed(2),
              ct.Option(ct.DataShape(ct.Fixed(3), ct.int32)),
          ),
      )
      self.assertEqual(
          parse("2 * ?3 * int32", self.sym),
          ct.DataShape(
              ct.Fixed(2),
              ct.Option(ct.DataShape(ct.Fixed(3), ct.int32)),
          ),
      )
  
imports: from __future__ import absolute_import, division, print_function
  import unittest
  import pytest
  from datashader import datashape
  from datashader.datashape.util.testing import assert_dshape_equal
  from datashader.datashape.parser import parse
  from datashader.datashape import coretypes
  from datashader.datashape import DataShapeSyntaxError
label_desc: Use image node_id 10 for calling the TestDataShapeParseBasicDType obj's underlying member method code with example usage: obj.test_option() without return types