### CI Link

https://gradle-enterprise.elastic.co/s/gcyi7azxnlpck/tests/:x-pack:plugin:autoscaling:test/org.elasticsearch.xpack.autoscaling.capacity.AutoscalingDeciderResultsTests/testRequiredCapacity

### Repro line

`./gradlew ':x-pack:plugin:autoscaling:test' --tests "org.elasticsearch.xpack.autoscaling.capacity.AutoscalingDeciderResultsTests.testRequiredCapacity" -Dtests.seed=2E2DFCE718729D4D -Dtests.locale=en-PH -Dtests.timezone=AST -Druntime.java=17`

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

https://gradle-enterprise.elastic.co/scans/tests?search.timeZoneId=Europe/Berlin&tests.container=org.elasticsearch.xpack.autoscaling.capacity.AutoscalingDeciderResultsTests&tests.test=testRequiredCapacity

### Failure excerpt

```
java.lang.IllegalArgumentException: processors must be a non-negative number; provided [0.0]
        at __randomizedtesting.SeedInfo.seed([2E2DFCE718729D4D:F14848089DDDD218]:0)
        at org.elasticsearch.common.unit.Processors.of(Processors.java:58)
        at org.elasticsearch.xpack.autoscaling.capacity.AutoscalingCapacity$Builder.total(AutoscalingCapacity.java:288)
        at org.elasticsearch.xpack.autoscaling.capacity.AutoscalingDeciderResultsTests.randomCapacity(AutoscalingDeciderResultsTests.java:161)
        at org.elasticsearch.xpack.autoscaling.capacity.AutoscalingDeciderResultsTests.lambda$testRequiredCapacity$1(AutoscalingDeciderResultsTests.java:65)
        at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
        at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
        at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
```
x-pack/plugin/autoscaling/src/test/java/org/elasticsearch/xpack/autoscaling/capacity/AutoscalingCalculateCapacityServiceTests.java
equalTo(Set.of(defaultOn.name()))
        );
    }
    private SortedMap<String, Settings> randomFixedDeciders() {
        Settings.Builder settings = Settings.builder();
        if (randomBoolean()) {
            settings.put(FixedAutoscalingDeciderService.STORAGE.getKey(), randomByteSizeValue());
        }
        if (randomBoolean()) {
            settings.put(FixedAutoscalingDeciderService.MEMORY.getKey(), randomByteSizeValue());
        }
        if (randomBoolean()) {
            settings.put(FixedAutoscalingDeciderService.PROCESSORS.getKey(), randomInt(64));
        }
        settings.put(FixedAutoscalingDeciderService.NODES.getKey(), randomIntBetween(1, 10));
        return new TreeMap<>(Map.of(FixedAutoscalingDeciderService.NAME, settings.build()));
    }
    private AutoscalingCapacity calculateFixedDeciderCapacity(Settings configuration) {
        ByteSizeValue storage = configuration.getAsBytesSize(FixedAutoscalingDeciderService.STORAGE.getKey(), null);
        ByteSizeValue memory = configuration.getAsBytesSize(FixedAutoscalingDeciderService.MEMORY.getKey(), null);
        Double processors = configuration.getAsDouble(FixedAutoscalingDeciderService.PROCESSORS.getKey(), null);
        int nodes = FixedAutoscalingDeciderService.NODES.get(configuration);
        ByteSizeValue totalStorage = storage != null ? new ByteSizeValue(storage.getBytes() * nodes) : null;
        ByteSizeValue totalMemory = memory != null ? new ByteSizeValue(memory.getBytes() * nodes) : null;
        Double totalProcessors = processors != null ? processors * nodes : null;
        if (totalStorage == null && totalMemory == null && totalProcessors == null) {
            return null;
        } else {
            return new AutoscalingCapacity(
                new AutoscalingCapacity.AutoscalingResources(totalStorage, totalMemory, Processors.of(totalProcessors)),