
import scala.concurrent._
import scala.concurrent.duration._
import ExecutionContext.Implicits.global
import scala.language.postfixOps 

lazy val f = Future {
  assert(legal_moves(8, Nil, (2,2)) == 
             List((3,4), (4,3), (4,1), (3,0), (1,0), (0,1), (0,3), (1,4)))
  assert(legal_moves(8, Nil, (7,7)) == List((6,5), (5,6)))
  assert(legal_moves(8, List((4,1), (1,0)), (2,2)) == 
             List((3,4), (4,3), (3,0), (0,1), (0,3), (1,4)))
  assert(legal_moves(8, List((6,6)), (7,7)) == List((6,5), (5,6)))
  assert(legal_moves(1, Nil, (0,0)) == List())
  assert(legal_moves(2, Nil, (0,0)) == List())
  assert(legal_moves(3, Nil, (0,0)) == List((1,2), (2,1)))
}

Await.result(f, 120 second)
