code: def test_duplicate_values(self):
      UNIMPORTANT_VALUE = 57
  
      panel = pd.Panel(
          UNIMPORTANT_VALUE,
          items=["a", "b", "b", "a"],
          major_axis=["c"],
          minor_axis=["d"],
      )
      unused = ExplodingObject()
  
      axis_names = ["items", "major_axis", "minor_axis"]
  
      for axis_order in permutations((0, 1, 2)):
          transposed = panel.transpose(*axis_order)
          with self.assertRaises(ValueError) as e:
              PanelBarReader(unused, transposed, "daily")
  
          expected = (
              "Duplicate entries in Panel.{name}: ['a', 'b'].".format(
                  name=axis_names[axis_order.index(0)],
              )
          )
          self.assertEqual(str(e.exception), expected)
  
file_path: catalyst/tests/test_panel_bar_reader.py
imports: from itertools import permutations, product
  import numpy
  import pandas
  from catalyst.data.us_equity_pricing import PanelBarReader
  from catalyst.testing import ExplodingObject
  from catalyst.testing.fixtures import WithAssetFinder, CatalystTestCase
  from catalyst.utils.calendars import get_calendar
label_desc: Use image node_id 3 for calling the WithPanelBarReader obj's underlying member method code with example usage: obj.test_duplicate_values() without return types