code: def test_aggregate_median(self):
      numeric_data = [
          {"Item": "Book", "Price": 2.0},
          {"Item": "Book", "Price": 3.0},
          {"Item": "Book", "Price": 5.0},
          {"Item": "Book", "Price": 4.0},
          {"Item": "Book", "Price": 8.0},
          {"Item": "Book", "Price": 9.0},
          {"Item": "Book", "Price": 6.0},
      ]
  
      non_numeric_data = [
          {"Item": "Book", "Price": "2"},
          {"Item": "Book", "Price": "3"},
          {"Item": "Book", "Price": "5"},
          {"Item": "Book", "Price": "4"},
          {"Item": "Book", "Price": "8"},
          {"Item": "Book", "Price": "9"},
          {"Item": "Book", "Price": "6"},
      ]
  
      # Testing with numeric data
      assert (
          self.get_median(numeric_data) == 5.0
      )  # List = [2.0,3.0,5.0,4.0,8.0,9.0,6.0], median = 5.0
      assert (
          self.get_median(numeric_data[:2]) == 2.5
      )  # List = [2.0,3.0], median = 2.5
      assert (
          self.get_median(numeric_data[5:]) == 7.5
      )  # List = [9.0,6.0], median = 7.5
      assert (
          self.get_median(numeric_data[1:]) == 5.5
      )  # List = [3.0,5.0,4.0,8.0,9.0,6.0], median = 5.5
      assert (
          self.get_median(numeric_data[::2]) == 5.5
      )  # List = [2.0,5.0,8.0,6.0], median = 5.5
  
      # Testing with non-numeric data
      assert (
          self.get_median(non_numeric_data) == "5"
      )  # List = ['2','3','5','4','8','9','6'], median = '5'
      assert (
          self.get_median(non_numeric_data[:2]) == "3"
      )  # List = ['2','3'], median = '5'
      assert (
          self.get_median(non_numeric_data[5:]) == "9"
      )  # List = ['9','6'], median = '9'
      assert (
          self.get_median(non_numeric_data[1:]) == "6"
      )  # List = ['3','5','4','8','9','6'], median = '6'
      assert self.get_median(non_numeric_data[::2]) == "6"
  
file_path: perspective/python/perspective/perspective/tests/core/test_aggregates.py
imports: from pytest import raises
  from perspective import PerspectiveError, PerspectiveViewer, PerspectiveWidget, Aggregate, Table
label_desc: Use image node_id 13 for calling the TestAggregates obj's underlying member method code with example usage: obj.test_aggregate_median() without return types