import pytest import numpy as np from sudoku.symetries import mat_sym def test_same_output_under_rotation(): assert mat_sym.shape == (9 * 9 * 9, 16, 9 * 9 * 9) arr1 = np.zeros((9, 9, 9)) arr1[0, 1, 2] = 1 arr1_sym = np.dot(mat_sym, arr1.reshape(9 * 9 * 9, -1)).reshape(9, 9, 9, -1) arr2 = np.zeros((9, 9, 9)) arr2[1, 2, 3] = 1 arr2_sym = np.dot(mat_sym, arr2.reshape(9 * 9 * 9, -1)).reshape(9, 9, 9, -1) assert arr1_sym.shape == (9, 9, 9, 16) assert (arr1_sym[0, 1, 2] == arr2_sym[1, 2, 3]).all() assert (arr1_sym[5, 1, 2] == arr2_sym[5, 2, 3]).all() assert (arr1_sym[0, 1, 1] == arr2_sym[1, 2, 4]).all() assert (arr1_sym[0, 5, 1] == arr2_sym[1, 8, 4]).all() assert (arr1_sym[6, 5, 1] == arr2_sym[6, 8, 4]).all()