@Test
    void testAlteringDistributionSplitCount() throws Exception {
        FleetControllerOptions.Builder options = defaultOptions();
        options.setDistributionBits(17);

        initialize(options);

        timer.advanceTime(1000000); // Node has been in steady state up

        ctrl.tick();

        setMinUsedBitsForAllNodes(15);

        ctrl.tick();

        assertEquals("version:3 bits:15 distributor:10 storage:10", ctrl.getSystemState().toString());

        tick(1000);

        communicator.setNodeState(new Node(NodeType.STORAGE, 0), new NodeState(NodeType.STORAGE, State.UP).setMinUsedBits(13), "");

        ctrl.tick();

        assertEquals("version:4 bits:13 distributor:10 storage:10", ctrl.getSystemState().toString());

        tick(1000);
        setMinUsedBitsForAllNodes(16);
        ctrl.tick();

        // Don't increase dist bits until we've reached at least the wanted
        // level, in order to avoid multiple full redistributions of data.
        assertEquals("version:4 bits:13 distributor:10 storage:10", ctrl.getSystemState().toString());

        tick(1000);
        setMinUsedBitsForAllNodes(19);
        ctrl.tick();

        assertEquals("version:5 bits:17 distributor:10 storage:10", ctrl.getSystemState().toString());
    }
Class for testing states of all nodes. Will fail in constructor with
debug message on non-expected results.
clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java