9mm/lib/no-moves.test.fnl

52 lines
1.6 KiB
Fennel

(let [{: no-moves?} (require :lib.no-moves)
{: neighbors} (require :lib.constants)
{: describe :end test-end} (require :lib.test)
with-neighbors (partial no-moves? neighbors)
]
(describe "no-moves()" (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))))