@Test
  public void testRemoveItemCausesRebalancing() {
    // Set-up containers and items.
    MockContainerEntity containerA = newContainer(app, "A", 10, 30);
    MockContainerEntity containerB = newContainer(app, "B", 10, 30);
    MockItemEntity item1 = newItem(app, containerA, "1", 30);
    MockItemEntity item2 = newItem(app, containerB, "2", 20);
    MockItemEntity item3 = newItem(app, containerB, "3", 20);

    item1.stop();
    Entities.unmanage(item1);

    assertWorkratesEventually(
        ImmutableList.of(containerA, containerB),
        ImmutableList.of(item1, item2, item3),
        ImmutableList.of(20d, 20d));
  }
  @Test
  public void testRebalancesAfterManualMove() {
    // Set-up containers and items.
    MockContainerEntity containerA = newContainer(app, "A", 10, 50);
    MockContainerEntity containerB = newContainer(app, "B", 10, 50);
    MockItemEntity item1 = newItem(app, containerA, "1", 20);
    MockItemEntity item2 = newItem(app, containerA, "2", 20);
    MockItemEntity item3 = newItem(app, containerB, "3", 20);
    MockItemEntity item4 = newItem(app, containerB, "4", 20);

    // Move everything onto containerA, and expect it to be automatically re-balanced
    item3.move(containerA);
    item4.move(containerA);

    assertWorkratesEventually(
        ImmutableList.of(containerA, containerB),
        ImmutableList.of(item1, item2, item3, item4),
        ImmutableList.of(40d, 40d));
  }
  // FIXME Failed in build repeatedly (e.g. #1035), but couldn't reproduce locally yet with
  // invocationCount=100
  @Test(groups = "WIP")
  public void testRemoveContainerCausesRebalancing() {
    // Set-up containers and items.
    MockContainerEntity containerA = newContainer(app, "A", 10, 30);
    MockContainerEntity containerB = newContainer(app, "B", 10, 30);
    MockContainerEntity containerC = newContainer(app, "C", 10, 30);
    MockItemEntity item1 = newItem(app, containerA, "1", 10);
    MockItemEntity item2 = newItem(app, containerA, "2", 10);
    MockItemEntity item3 = newItem(app, containerB, "3", 10);
    MockItemEntity item4 = newItem(app, containerB, "4", 10);
    MockItemEntity item5 = newItem(app, containerC, "5", 10);
    MockItemEntity item6 = newItem(app, containerC, "6", 10);

    Entities.unmanage(containerC);
    item5.move(containerA);
    item6.move(containerA);

    assertWorkratesEventually(
        ImmutableList.of(containerA, containerB),
        ImmutableList.of(item1, item2, item3, item4, item5, item6),
        ImmutableList.of(30d, 30d));
  }