def test_small_straight_hands(self):
        state = GameState()
        card_piles = [[[Card("K", "h")], [Card("Q", "d")], [Card("A", "s")]],
                      [[Card("2", "c")], [Card("A", "d")], [Card("J", "d")]],
                      [[Card("3", "s")], [Card("T", "c")], [Card("5", "c")]]]
        state.start_new_game(lucky_card=Card("7", "h"), card_piles=card_piles)

        sm_straight_hands = state._get_sm_straight_hands()
        assert len(sm_straight_hands) == 5
        assert set([(0, 0), (0, 1), (1, 1)]) in sm_straight_hands
        assert set([(0, 0), (0, 1), (1, 2)]) in sm_straight_hands
        assert set([(0, 1), (1, 2), (2, 1)]) in sm_straight_hands
        assert set([(0, 2), (1, 0), (2, 0)]) in sm_straight_hands
        assert set([(1, 0), (1, 1), (2, 0)]) in sm_straight_hands

        # this isn't a valid hand (the cards are on the same row)
        assert set([(0, 0), (0, 1), (0, 2)]) not in sm_straight_hands

        # the small straight can't wrap with K-A-2
        assert set([(0, 0), (0, 2), (1, 0)]) not in sm_straight_hands
        assert set([(0, 0), (1, 0), (1, 1)]) not in sm_straight_hands