code: def test_repr(self):
      class MD1(DataSetFamily):
          extra_dims = [("dim_0", [])]
  
      expected_repr = "<DataSetFamily: 'MD1', extra_dims=['dim_0']>"
      assert_equal(repr(MD1), expected_repr)
  
      class MD2(DataSetFamily):
          extra_dims = [("dim_0", []), ("dim_1", [])]
  
      expected_repr = (
          "<DataSetFamily: 'MD2', extra_dims=['dim_0', 'dim_1']>"
      )
      assert_equal(repr(MD2), expected_repr)
  
      class MD3(DataSetFamily):
          extra_dims = [("dim_1", []), ("dim_0", [])]
  
      expected_repr = (
          "<DataSetFamily: 'MD3', extra_dims=['dim_1', 'dim_0']>"
      )
      assert_equal(repr(MD3), expected_repr)
  
file_path: zipline/tests/pipeline/test_multidimensional_dataset.py
imports: from collections import OrderedDict
  import itertools
  from textwrap import dedent
  from nose_parameterized import parameterized
  import numpy
  from zipline.pipeline.data import Column, DataSetFamily, DataSetFamilySlice
  from zipline.testing import ZiplineTestCase
  from zipline.testing.predicates import assert_equal, assert_is, assert_is_not, assert_is_subclass, assert_raises_str
label_desc: Use image node_id 1 for calling the TestDataSetFamily obj's underlying member method code with example usage: obj.test_repr() without return types