Verificação de quadrado mágico

Crie uma função que receba uma matriz 2D e retorne true se ela for um quadrado mágico e false caso contrário. Um quadrado mágico é uma disposição de números em um quadrado de modo que a soma de cada linha, coluna e diagonal seja um número constante, a «constante mágica».

Exemplos

isMagic([[2, 7, 6], [9, 5, 1], [4, 3, 8]]) ➞ true

// Rows: 2+7+6 = 9+5+1 = 4+3+8 = 15
// Columns: 2+9+4 = 7+5+3 = 6+1+8 = 15
// Diagonals: 2+5+8 = 6+5+4 = 15
isMagic([[1, 2], [3, 4]]) ➞ false

// Rows: 1+2 = 3 != 3+4 = 7
// Columns: 1+3 = 4 != 2+4 = 6
// Diagonals: 1+4 = 2+3 = 5

Observações

Neste desafio, testarei apenas quadrados mágicos formados por números inteiros de 1 a n^2, em que n é o comprimento de um lado do quadrado.