Esempio n. 1
0
def test_if_possible_to_play_unavailable_action():
    root = KuhnRootChanceGameState(CARDS_DEALINGS)
    with pytest.raises(KeyError):
        root.play(CALL)
    with pytest.raises(KeyError):
        root.play(BET).play(BET)
    with pytest.raises(KeyError):
        root.play(CHECK).play(CALL)
Esempio n. 2
0
def test_termination():
    root = KuhnRootChanceGameState(CARDS_DEALINGS)
    assert not root.is_terminal()
    assert not root.play(KQ).play(BET).is_terminal()
    assert not root.play(JQ).play(CHECK).play(BET).is_terminal()
    assert not root.play(QJ).play(CHECK).is_terminal()

    assert root.play(KQ).play(BET).play(FOLD).is_terminal()
    assert root.play(JQ).play(CHECK).play(CHECK).is_terminal()
    assert root.play(JK).play(BET).play(CALL).is_terminal()
    assert root.play(QJ).play(CHECK).play(BET).play(FOLD).is_terminal()
    assert root.play(QJ).play(CHECK).play(BET).play(CALL).is_terminal()
def test_termination():
    root = KuhnRootChanceGameState(2, CARDS_DEALINGS)

    assert not root.is_terminal()
    assert not root.play(K0Q0).play(BET).is_terminal()
    assert not root.play(J0Q0).play(CHECK).play(BET).is_terminal()
    assert not root.play(Q0J0).play(CHECK).is_terminal()

    assert root.play(K0Q0).play(BET).play(FOLD).is_terminal()
    assert root.play(J0Q0).play(CHECK).play(CHECK).is_terminal()
    assert root.play(J0K0).play(BET).play(CALL).is_terminal()
    assert root.play(Q0J0).play(CHECK).play(BET).play(FOLD).is_terminal()
    assert root.play(Q0J0).play(CHECK).play(BET).play(CALL).is_terminal()
Esempio n. 4
0
def test_inf_sets():
    root = KuhnRootChanceGameState(CARDS_DEALINGS)
    assert root.inf_set() == "."
    assert root.play(KQ).inf_set() == ".K."
    assert root.play(KQ).play(BET).inf_set() == ".Q.BET"
    assert root.play(KQ).play(BET).play(FOLD).inf_set() == ".K.BET.FOLD"

    assert root.inf_set() == "."
    assert root.play(QJ).inf_set() == ".Q."
    assert root.play(QJ).play(BET).inf_set() == ".J.BET"
    assert root.play(QJ).play(BET).play(FOLD).inf_set() == ".Q.BET.FOLD"
    assert root.play(QJ).play(BET).play(CALL).inf_set() == ".Q.BET.CALL"

    assert root.inf_set() == "."
    assert root.play(JK).inf_set() == ".J."
    assert root.play(JK).play(CHECK).inf_set() == ".K.CHECK"
    assert root.play(JK).play(CHECK).play(CHECK).inf_set() == ".J.CHECK.CHECK"
    assert root.play(JK).play(CHECK).play(BET).inf_set() == ".J.CHECK.BET"
    assert root.play(JK).play(CHECK).play(BET).play(CALL).inf_set() == ".K.CHECK.BET.CALL"
    assert root.play(JK).play(CHECK).play(BET).play(FOLD).inf_set() == ".K.CHECK.BET.FOLD"
def test_inf_sets():
    root = KuhnRootChanceGameState(2, CARDS_DEALINGS)
    assert root.inf_set() == "."

    assert root.play(K0Q0).inf_set() == ".K0."
    assert root.play(K0Q0).play(BET).inf_set() == ".Q0.BET"
    assert root.play(K0Q0).play(BET).play(FOLD).inf_set() == ".K0.BET.FOLD"

    assert root.inf_set() == "."

    assert root.play(Q0J0).inf_set() == ".Q0."
    assert root.play(Q0J0).play(BET).inf_set() == ".J0.BET"
    assert root.play(Q0J0).play(BET).play(FOLD).inf_set() == ".Q0.BET.FOLD"
    assert root.play(Q0J0).play(BET).play(CALL).inf_set() == ".Q0.BET.CALL"

    assert root.inf_set() == "."

    assert root.play(J0K0).inf_set() == ".J0."
    assert root.play(J0K0).play(CHECK).inf_set() == ".K0.CHECK"
    assert root.play(J0K0).play(CHECK).play(
        CHECK).inf_set() == ".J0.CHECK.CHECK"
    assert root.play(J0K0).play(CHECK).play(BET).inf_set() == ".J0.CHECK.BET"
    assert root.play(J0K0).play(CHECK).play(BET).play(
        CALL).inf_set() == ".K0.CHECK.BET.CALL"
    assert root.play(J0K0).play(CHECK).play(BET).play(
        FOLD).inf_set() == ".K0.CHECK.BET.FOLD"