boolean shouldSetAvailableForAnotherInput() {
        return (selectedInputsMask & allSelectedMask & ~availableInputsMask) != 0;
    }
@Test
    void testShouldSetAvailableForAnotherInput() {
        InputSelection secondAndThird = new InputSelection.Builder().select(2).select(3).build();

        MultipleInputSelectionHandler selectionHandler =
                new MultipleInputSelectionHandler(() -> secondAndThird, 3);
        selectionHandler.nextSelection();

        assertThat(selectionHandler.shouldSetAvailableForAnotherInput()).isFalse();

        selectionHandler.setUnavailableInput(0);
        assertThat(selectionHandler.shouldSetAvailableForAnotherInput()).isFalse();

        selectionHandler.setUnavailableInput(2);
        assertThat(selectionHandler.shouldSetAvailableForAnotherInput()).isTrue();

        selectionHandler.setAvailableInput(0);
        assertThat(selectionHandler.shouldSetAvailableForAnotherInput()).isTrue();

        selectionHandler.setAvailableInput(2);
        assertThat(selectionHandler.shouldSetAvailableForAnotherInput()).isFalse();
    }