@Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    if (fieldsDiffer((LineRange) obj)) {
      return false;
    }
    return true;
  }
@Test
  public void testEquals() {
    LineRange range = new LineRange(12, 15);
    assertThat(range)
      .isEqualTo(range)
      .isEqualTo(new LineRange(12, 15))
      .isNotEqualTo(new LineRange(12, 2000))
      .isNotEqualTo(new LineRange(1000, 2000))
      .isNotNull()
      .isNotEqualTo(new StringBuffer());
  }