def test_full_house_hands(self):
        state = GameState()
        card_piles = [[[Card("K", "h")], [Card("K", "d")], [Card("K", "s")]],
                      [[Card("3", "c")], [Card("A", "s")], [Card("A", "d")]],
                      [[Card("3", "s")], [Card("A", "c")], [Card("K", "c")]]]
        state.start_new_game(lucky_card=Card("7", "h"), card_piles=card_piles)

        full_house_hands = state._get_full_house_hands()
        assert len(full_house_hands) == 23

        # three kings and two aces - 12 combos ((4 choose 3) * (3 choose 2))
        assert set([(0, 0), (0, 1), (0, 2), (1, 1),
                    (1, 2)]) in full_house_hands
        assert set([(0, 0), (0, 1), (0, 2), (1, 1),
                    (2, 1)]) in full_house_hands
        assert set([(0, 0), (0, 1), (0, 2), (1, 2),
                    (2, 1)]) in full_house_hands

        assert set([(0, 0), (0, 1), (2, 2), (1, 1),
                    (1, 2)]) in full_house_hands
        assert set([(0, 0), (0, 1), (2, 2), (1, 1),
                    (2, 1)]) in full_house_hands
        assert set([(0, 0), (0, 1), (2, 2), (1, 2),
                    (2, 1)]) in full_house_hands

        assert set([(0, 0), (0, 2), (2, 2), (1, 1),
                    (1, 2)]) in full_house_hands
        assert set([(0, 0), (0, 2), (2, 2), (1, 1),
                    (2, 1)]) in full_house_hands
        assert set([(0, 0), (0, 2), (2, 2), (1, 2),
                    (2, 1)]) in full_house_hands

        assert set([(0, 1), (0, 2), (2, 2), (1, 1),
                    (1, 2)]) in full_house_hands
        assert set([(0, 1), (0, 2), (2, 2), (1, 1),
                    (2, 1)]) in full_house_hands
        assert set([(0, 1), (0, 2), (2, 2), (1, 2),
                    (2, 1)]) in full_house_hands

        # three kings and two threes - 4 combos ((4 choose 3) * (2 choose 2))
        assert set([(0, 0), (0, 1), (0, 2), (1, 0),
                    (2, 0)]) in full_house_hands
        assert set([(0, 0), (0, 1), (2, 2), (1, 0),
                    (2, 0)]) in full_house_hands
        assert set([(0, 0), (0, 2), (2, 2), (1, 0),
                    (2, 0)]) in full_house_hands
        assert set([(0, 1), (0, 2), (2, 2), (1, 0),
                    (2, 0)]) in full_house_hands

        # three aces and two kings - 6 combos ((3 choose 3) * (4 choose 2))
        assert set([(1, 1), (1, 2), (2, 1), (0, 0),
                    (0, 1)]) in full_house_hands
        assert set([(1, 1), (1, 2), (2, 1), (0, 0),
                    (0, 2)]) in full_house_hands
        assert set([(1, 1), (1, 2), (2, 1), (0, 0),
                    (2, 2)]) in full_house_hands
        assert set([(1, 1), (1, 2), (2, 1), (0, 1),
                    (0, 2)]) in full_house_hands
        assert set([(1, 1), (1, 2), (2, 1), (0, 1),
                    (2, 2)]) in full_house_hands
        assert set([(1, 1), (1, 2), (2, 1), (0, 2),
                    (2, 2)]) in full_house_hands

        # three aces and two threes - 1 combo ((3 choose 3) * (2 choose 2))
        assert set([(1, 1), (1, 2), (2, 1), (1, 0),
                    (2, 0)]) in full_house_hands