public Optional<HostFailurePath> worstCaseHostLossLeadingToFailure() {
        Map<Node, Integer> timesNodeCanBeRemoved = computeMaximalRepeatedRemovals();
        return greedyHeuristicFindFailurePath(timesNodeCanBeRemoved);
    }
@Test
    public void testWithRealData() throws IOException {
        CapacityCheckerTester tester = new CapacityCheckerTester();
        String path = "./src/test/resources/zookeeper_dump.json";

        tester.populateNodeRepositoryFromJsonFile(Paths.get(path));
        var failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
        assertTrue(failurePath.isPresent());
        assertTrue(tester.nodeRepository.nodes().list().nodeType(NodeType.host).asList().containsAll(failurePath.get().hostsCausingFailure));
        assertEquals(5, failurePath.get().hostsCausingFailure.size());
    }