@Test
    public void highest_node_indexes_are_retired_first() {
        ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build();

        ApplicationId application1 = ProvisioningTester.applicationId("a1");

        tester.makeReadyHosts(14, defaultResources).activateTenantHosts();

        // deploy
        SystemState state1 = prepare(application1, 3, 3, 4, 4, defaultResources, tester);
        tester.activate(application1, state1.allHosts);

        // decrease cluster sizes
        SystemState state2 = prepare(application1, 2, 2, 2, 2, defaultResources, tester);
        tester.activate(application1, state2.allHosts);

        List<Integer> unretiredInContent0Indices = state2.content0.stream().filter(h -> ! h.membership().get().retired()).map(h -> h.membership().get().index()).toList();
        for (var host : state2.content0) {
            if ( ! host.membership().get().retired()) continue;
            for (int unretiredIndex : unretiredInContent0Indices)
                assertTrue(host.membership().get().index() > unretiredIndex);
        }

        List<Integer> unretiredInContent1Indices = state2.content1.stream().filter(h -> ! h.membership().get().retired()).map(h -> h.membership().get().index()).toList();
        for (var host : state2.content1) {
            if ( ! host.membership().get().retired()) continue;
            for (int unretiredIndex : unretiredInContent1Indices)
                assertTrue(host.membership().get().index() > unretiredIndex);
        }
    }
Test always uses the zone default resources
node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java