50 lines
1.6 KiB
Fennel
50 lines
1.6 KiB
Fennel
(let [{: no-moves?} (require :lib.game.no-moves)
|
|
{: neighbors} (require :lib.constants)
|
|
{: describe : test-end} (require :lib.test)
|
|
with-neighbors (partial no-moves? neighbors)
|
|
]
|
|
|
|
(describe "# NOMOVES" (fn [t]
|
|
(let [moves [ 1 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 ]
|
|
player 1
|
|
]
|
|
(t {:given "one move with no moves"
|
|
:should "return true"
|
|
:expected true
|
|
:actual (with-neighbors moves player)
|
|
}))
|
|
(let [moves [ 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]
|
|
player 1
|
|
]
|
|
(t {:given "one move with one move"
|
|
:should "return false"
|
|
:expected false
|
|
:actual (with-neighbors moves player)
|
|
}))
|
|
(let [moves [ 1 1 1 0 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 0 0 0 ]
|
|
player 1
|
|
]
|
|
(t {:given "several moves with no moves"
|
|
:should "return true"
|
|
:expected true
|
|
:actual (with-neighbors moves player)
|
|
}))
|
|
(let [moves [ 0 2 0 2 1 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]
|
|
player 1
|
|
]
|
|
(t {:given "four occupied neighbors"
|
|
:should "return true"
|
|
:expected true
|
|
:actual (with-neighbors moves player)
|
|
}))
|
|
(let [moves [ 1 2 1 2 0 2 1 2 1 2 1 0 1 2 1 2 2 2 0 1 0 0 0 0 0 ]
|
|
player 2
|
|
]
|
|
(t {:given "this turn that is giving me trouble"
|
|
:should "return true"
|
|
:expected true
|
|
:actual (with-neighbors moves player)
|
|
}))
|
|
|
|
(test-end))))
|