@Override // Object
  public int hashCode() {
    return new HashCodeBuilder(31, 17).
        append(poolId).
        append(block).
        toHashCode();
  }
@Test
  public void testHashcode() {
    
    // Different pools, same block id -> different hashcode
    assertNotEquals(
        new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
        new ExtendedBlock(POOL_B, BLOCK_1_GS1).hashCode());
    
    // Same pool, different block id -> different hashcode
    assertNotEquals(
        new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
        new ExtendedBlock(POOL_A, BLOCK_2_GS1).hashCode());
    
    // Same block -> same hashcode
    assertEquals(
        new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
        new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode());

  }