/** Tests that the handler doesn't attempt to deal with data is should not. */
  @Test
  public void capabilities() {
    CopyNumberAlterationCriterion criterion = new CopyNumberAlterationCriterion();

    CopyNumberAlterationCriterionHandler handler =
        CopyNumberAlterationCriterionHandler.create(criterion);
    assertFalse(handler.hasReporterCriterion());
    assertFalse(handler.isReporterMatchHandler());
    assertTrue(handler.hasCriterionSpecifiedSegmentValues());
    assertFalse(handler.hasCriterionSpecifiedReporterValues());
  }
  /** Tests for handling calls value criterion type. */
  @Test
  public void callsValues() {
    Set<Integer> callsValues = new HashSet<Integer>();
    callsValues.add(1);

    CopyNumberAlterationCriterion criterion = new CopyNumberAlterationCriterion();
    criterion.setCopyNumberCriterionType(CopyNumberCriterionTypeEnum.CALLS_VALUE);
    criterion.setCallsValues(callsValues);

    CopyNumberAlterationCriterionHandler handler =
        CopyNumberAlterationCriterionHandler.create(criterion);

    assertTrue(handler.hasCriterionSpecifiedSegmentValues());
    assertTrue(handler.hasCriterionSpecifiedSegmentCallsValues());
    assertEquals(
        GenomicCriteriaMatchTypeEnum.MATCH_POSITIVE_OR_NEGATIVE,
        handler.getSegmentCallsValueMatchCriterionType(1));
    assertFalse(
        GenomicCriteriaMatchTypeEnum.MATCH_POSITIVE_OR_NEGATIVE.equals(
            handler.getSegmentCallsValueMatchCriterionType(2)));
  }