code: def test_allowed_asset_types(self):
      # Custom equities model.
      class MyEquitiesModel(EquityCommissionModel):
          def calculate(self, order, transaction):
              return 0
  
      self.assertEqual(MyEquitiesModel.allowed_asset_types, (Equity,))
  
      # Custom futures model.
      class MyFuturesModel(FutureCommissionModel):
          def calculate(self, order, transaction):
              return 0
  
      self.assertEqual(MyFuturesModel.allowed_asset_types, (Future,))
  
      # Custom model for both equities and futures.
      class MyMixedModel(EquityCommissionModel, FutureCommissionModel):
          def calculate(self, order, transaction):
              return 0
  
      self.assertEqual(
          MyMixedModel.allowed_asset_types, (Equity, Future)
      )
  
      # Equivalent custom model for both equities and futures.
      class MyMixedModel(CommissionModel):
          def calculate(self, order, transaction):
              return 0
  
      self.assertEqual(
          MyMixedModel.allowed_asset_types, (Equity, Future)
      )
  
      SomeType = type("SomeType", (object,), {})
  
      # A custom model that defines its own allowed types should take
      # precedence over the parent class definitions.
      class MyCustomModel(EquityCommissionModel, FutureCommissionModel):
          allowed_asset_types = (SomeType,)
  
          def calculate(self, order, transaction):
              return 0
  
      self.assertEqual(MyCustomModel.allowed_asset_types, (SomeType,))
  
imports: from textwrap import dedent
  from nose_parameterized import parameterized
  from pandas import DataFrame
  from zipline.assets import Equity, Future
  from zipline.errors import IncompatibleCommissionModel
  from zipline.finance.commission import CommissionModel, EquityCommissionModel, FutureCommissionModel, PerContract, PerDollar, PerFutureTrade, PerShare, PerTrade
  from zipline.finance.order import Order
  from zipline.finance.transaction import Transaction
  from zipline.testing import ZiplineTestCase
  from zipline.testing.fixtures import WithAssetFinder, WithMakeAlgo
label_desc: Use image node_id 4 for calling the CommissionUnitTests obj's underlying member method code with example usage: obj.test_allowed_asset_types() and returns: int, int, int, int, int