public void Cardinal()
 {
     for (int i = 0; i < DirectionExtensions.numDirections; i++)
     {
         NeighbourStatus neighbourStatus = new NeighbourStatus();
         Assert.IsFalse(neighbourStatus.AllValid, $"Status was considered valid after construction");
         //Add all neighbours except one
         for (int j = 0; j < DirectionExtensions.numDirections; j++)
         {
             if (i == j)
             {
                 continue;
             }
             neighbourStatus.AddNeighbour(j);
         }
         Assert.IsFalse(neighbourStatus.AllValid, $"Status was considered valid when it was missing direction {(Direction)i}." +
                        $" Status: {neighbourStatus}");
         neighbourStatus.AddNeighbour(i);
         Assert.IsTrue(neighbourStatus.AllValid, $"Status was considered invalid when it had all directions." +
                       $" Status: {neighbourStatus}");
         neighbourStatus.RemoveNeighbour(i);
         Assert.IsFalse(neighbourStatus.AllValid, $"Status was considered valid after having direction {(Direction)i} removed." +
                        $" Status: {neighbourStatus}");
     }
 }
        public void AddAndRemoveAllCardinal()
        {
            NeighbourStatus neighbourStatus = new NeighbourStatus();

            for (int i = 0; i < DirectionExtensions.numDirections; i++)
            {
                neighbourStatus.AddNeighbour(i);
            }
            Assert.IsTrue(neighbourStatus.AllValid);
            for (int i = 0; i < DirectionExtensions.numDirections; i++)
            {
                neighbourStatus.RemoveNeighbour(i);
            }
            Assert.IsFalse(neighbourStatus.AllValid);
        }