public void execute() {
    new PathAwareCrawler<>(
      FormulaExecutorComponentVisitor.newBuilder(metricRepository, measureRepository).buildFor(formulas))
      .visit(treeRootHolder.getReportTreeRoot());
  }
@Test
  public void compute_and_aggregate_duplicated_lines() {
    addDuplicatedBlock(FILE_1_REF, 10);
    addDuplicatedBlock(FILE_2_REF, 9);
    addDuplicatedBlock(FILE_4_REF, 7);

    underTest.execute();

    assertRawMeasureValue(FILE_1_REF, DUPLICATED_LINES_KEY, 10);
    assertRawMeasureValue(FILE_2_REF, DUPLICATED_LINES_KEY, 9);
    assertRawMeasureValue(FILE_3_REF, DUPLICATED_LINES_KEY, 0);
    assertRawMeasureValue(FILE_4_REF, DUPLICATED_LINES_KEY, 7);
    assertRawMeasureValue(DIRECTORY_REF, DUPLICATED_LINES_KEY, 19);
    assertRawMeasureValue(ROOT_REF, DUPLICATED_LINES_KEY, 26);
  }