@Test
  public void testGetPlantTechnology() throws Exception {
    // make sure all delegate methods work
    assertEquals(1.0f, crs.hypotheticalWaitingTime(1), .0001f);
    assertEquals(1.0f, irs.hypotheticalWaitingTime(1), .0001f);
    assertEquals(1.0f, drs.hypotheticalWaitingTime(1), .0001f);

    assertEquals(0.5f, crs.hypotheticalWaitingTime(2), .0001f);
    assertEquals(0.25f, irs.hypotheticalWaitingTime(2), .0001f);
    assertEquals(1f / 1.41421356f, drs.hypotheticalWaitingTime(2), .0001f);

    assertEquals(
        1.0f * crs.getModel().getWeekLength(), crs.hypotheticalWeeklyProductionRuns(1), .0001f);
    assertEquals(
        1.0f * irs.getModel().getWeekLength(), irs.hypotheticalWeeklyProductionRuns(1), .0001f);
    assertEquals(
        1.0f * drs.getModel().getWeekLength(), drs.hypotheticalWeeklyProductionRuns(1), .0001f);

    assertEquals(
        2.0f * crs.getModel().getWeekLength(), crs.hypotheticalWeeklyProductionRuns(2), .0001f);
    assertEquals(
        4.0f * irs.getModel().getWeekLength(), irs.hypotheticalWeeklyProductionRuns(2), .0001f);
    assertEquals(
        1.41421356f * drs.getModel().getWeekLength(),
        drs.hypotheticalWeeklyProductionRuns(2),
        .0001f);

    assertEquals(0.5f, crs.expectedWaitingTime(), .0001f);
    assertEquals(0.25f, irs.expectedWaitingTime(), .0001f);
    assertEquals(1f / 1.41421356f, drs.expectedWaitingTime(), .0001f);

    assertEquals(
        2f * 2.0f * crs.getModel().getWeekLength(),
        crs.expectedWeeklyProduction(DifferentiatedGoodType.CAPITAL),
        .0001f);
    assertEquals(
        2f * 4.0f * drs.getModel().getWeekLength(),
        irs.expectedWeeklyProduction(DifferentiatedGoodType.CAPITAL),
        .0001f);
    assertEquals(
        2f * 1.41421356f * irs.getModel().getWeekLength(),
        drs.expectedWeeklyProduction(DifferentiatedGoodType.CAPITAL),
        .0001f);

    assertEquals(
        2f * crs.getModel().getWeekLength(),
        crs.marginalProductOfWorker(DifferentiatedGoodType.CAPITAL),
        .0001f);
    assertEquals(
        2f * 5.0f * irs.getModel().getWeekLength(),
        irs.marginalProductOfWorker(DifferentiatedGoodType.CAPITAL),
        .0001f);
    assertEquals(
        2f * 0.317837245 * drs.getModel().getWeekLength(),
        drs.marginalProductOfWorker(DifferentiatedGoodType.CAPITAL),
        .0001f);
  }