### Question:
Summary { public static Builder builder() { return new Builder(); } private  Summary(int changeCount, int deletionCount, int fetchCount); static Summary empty(); static Builder builder(); int getChangeCount(); int getDeletionCount(); int getFetchCount(); String summary(); Summary merge(Summary other); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }### Answer:
@Test(expected=IllegalArgumentException.class) public void builderChangesNegative() { Summary.builder() .changeCount(-1); }
@Test(expected=IllegalArgumentException.class) public void builderDeletionsNegative() { Summary.builder() .deletionCount(-1); }
@Test(expected=IllegalArgumentException.class) public void builderFetchsNegative() { Summary.builder() .fetchCount(-1); }
@Test public void builder() { Summary summary = Summary.builder() .changeCount(1) .deletionCount(2) .fetchCount(3) .build(); assertThat(summary.getChangeCount()).isEqualTo(1); assertThat(summary.getDeletionCount()).isEqualTo(2); assertThat(summary.getFetchCount()).isEqualTo(3); }