Deslocamento circular para a esquerda e para a direita

Implemente deslocamentos circulares para a esquerda e para a direita em um array de inteiros. amount pode ser maior que o comprimento do array e nunca é negativo.

Exemplo

Program.LeftShift(new[] { 1, 2, 3, 4 }, 1) ➢ new[] { 2, 3, 4, 1 }
Program.RightShift(new[] { 1, 2, 3, 4 }, 1) ➢ new[] { 4, 1, 2, 3 }