Я был на карнавале, где в каждом месте вашей программы помечают специальным дыроколом. Дырокол представляет собой сетку размером 3x3 ячейки. В каждом месте есть булавка, которая протыкает вашу бумагу, или нет. Это заставило меня задуматься, сколько разных узоров вы можете создать с помощью этого инструмента. Моей первой мыслью было: 2 ^ 9 = 512, но все 9 пробелов без вывода на самом деле не удар, так что на самом деле: 511.
Тогда сложность поразила меня. Тем более, что рабочие не так осторожны, когда пробивают вашу бумагу, все они будут выглядеть одинаково:
x.. .x. ... etc.
.x. x.. .x.
... ... ..x
Вопрос: Как можно написать тест для учета вращения и смещения?
Усердие и мысли так far:
Перекрытия:
/ = the spaces in the new one to test
\ = the spaces in a verified unique one
1 2 25
/ / / . . . . . / / / . . . . . . . . . .
/ / / . . . . . / / / . . . . . . . . . .
/ / X \ \ . . . / X X \ . . . . \ \ \ . .
. . \ \ \ . . . . \ \ \ . . . . \ \ \ . .
. . \ \ \ . . . . \ \ \ . . . . \ \ X / /
. . . . . . . . . . . . . . . . . . / / /
. . . . . . . . . . . . . . . . . . / / /