Назад к задачам
Junior — Senior
23

Случайная перестановка элементов массива

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Дан массив, содержащий ровно десять целых чисел. Требуется перемешать его элементы в произвольном порядке, аналогично перемешиванию колоды карт.

Решение должно проходить проверку, которая убеждается в следующем:

  1. После перемешивания массив не является пустым.
  2. Размер массива остаётся тем же самым.
  3. В массиве присутствуют все исходные значения, но их порядок может измениться.
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

class ArraysTest {
    private static final int[] INPUT_VALUES = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    @Test
    void shouldNotRetrieveEmpty() {
        assertThat(Arrays.shuffle(INPUT_VALUES)).isNotEmpty();
    }

    @Test
    void shouldContainSameLength() {
        assertThat(Arrays.shuffle(INPUT_VALUES).length).isEqualTo(10);
    }

    @Test
    void shouldContainSameValuesInAnyOrder() {
        assertThat(Arrays.shuffle(INPUT_VALUES)).containsExactlyInAnyOrder(INPUT_VALUES);
    }
}
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

class ArraysTest {
    private static final int[] INPUT_VALUES = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    @Test
    void shouldNotRetrieveEmpty() {
        assertThat(Arrays.shuffle(INPUT_VALUES)).isNotEmpty();
    }

    @Test
    void shouldContainSameLength() {
        assertThat(Arrays.shuffle(INPUT_VALUES).length).isEqualTo(10);
    }

    @Test
    void shouldContainSameValuesInAnyOrder() {
        assertThat(Arrays.shuffle(INPUT_VALUES)).containsExactlyInAnyOrder(INPUT_VALUES);
    }
}