/** Some checks for the remove method. */
  @Test
  public void testRemove() {
    DefaultStatisticalCategoryDataset data = new DefaultStatisticalCategoryDataset();

    try {
      data.remove("R1", "R2");
      fail("UnknownKeyException should have been thrown on the unknown key");
    } catch (UnknownKeyException e) {
      assertEquals("Row key (R1) not recognised.", e.getMessage());
    }

    data.add(1.0, 0.5, "R1", "C1");
    assertEquals(new Range(1.0, 1.0), data.getRangeBounds(false));
    assertEquals(new Range(0.5, 1.5), data.getRangeBounds(true));

    data.add(1.4, 0.2, "R2", "C1");

    assertEquals(1.0, data.getRangeLowerBound(false), EPSILON);
    assertEquals(1.4, data.getRangeUpperBound(false), EPSILON);
    assertEquals(0.5, data.getRangeLowerBound(true), EPSILON);
    assertEquals(1.6, data.getRangeUpperBound(true), EPSILON);

    data.remove("R1", "C1");

    assertEquals(1.4, data.getRangeLowerBound(false), EPSILON);
    assertEquals(1.4, data.getRangeUpperBound(false), EPSILON);
    assertEquals(1.2, data.getRangeLowerBound(true), EPSILON);
    assertEquals(1.6, data.getRangeUpperBound(true), EPSILON);
  }
 /** Some checks for the getRangeUpperBound() method. */
 @Test
 public void testGetRangeUpperBound() {
   DefaultStatisticalCategoryDataset d1 = new DefaultStatisticalCategoryDataset();
   d1.add(1.0, 2.0, "R1", "C1");
   assertEquals(1.0, d1.getRangeUpperBound(false), EPSILON);
   assertEquals(3.0, d1.getRangeUpperBound(true), EPSILON);
 }
  /** A test for bug 3072674. */
  @Test
  public void test3072674() {
    DefaultStatisticalCategoryDataset dataset = new DefaultStatisticalCategoryDataset();
    dataset.add(1.0, Double.NaN, "R1", "C1");
    assertEquals(1.0, dataset.getRangeLowerBound(true), EPSILON);
    assertEquals(1.0, dataset.getRangeUpperBound(true), EPSILON);

    Range r = dataset.getRangeBounds(true);
    assertEquals(1.0, r.getLowerBound(), EPSILON);
    assertEquals(1.0, r.getUpperBound(), EPSILON);
  }