More thorough test for this scenario.

This commit is contained in:
Murilo Pereira 2011-05-31 02:46:43 -03:00
parent aa7accb3f1
commit 1b6d79b26c

View File

@ -442,22 +442,38 @@ void test_move_card_from_empty_stack_to_non_empty_stack() {
void test_move_card_from_non_empty_stack_to_empty_stack() { void test_move_card_from_non_empty_stack_to_empty_stack() {
struct stack *origin, *destination; struct stack *origin, *destination;
struct card *card; struct card *card[6];
allocate_card(&card); for (int i = 0; i < 6; i++) {
initialize_card(card); allocate_card(&card[i]);
set_card(card, TWO, DIAMONDS, EXPOSED, 0, 0); initialize_card(card[i]);
set_card(card[i], TWO + i, i % 5, i % 2, 99, 99);
}
allocate_stack(&origin); allocate_stack(&origin);
allocate_stack(&destination); allocate_stack(&destination);
initialize_stack(origin); initialize_stack(origin);
initialize_stack(destination); initialize_stack(destination);
push(&origin, card); for (int i = 0; i < 6; i++) {
push(&origin, card[i]);
}
move_card(&origin, &destination); move_card(&origin, &destination);
assert(empty(origin)); assert(length(origin) == 5);
assert(length(destination) == 1); assert(length(destination) == 1);
assert(cards_equal(destination->card, card)); assert(cards_equal(destination->card, card[5]));
move_card(&origin, &destination);
assert(length(origin) == 4);
assert(length(destination) == 2);
assert(cards_equal(destination->card, card[4]));
move_card(&origin, &destination);
assert(length(origin) == 3);
assert(length(destination) == 3);
assert(cards_equal(destination->card, card[3]));
free_stack(origin); free_stack(origin);
free_stack(destination); free_stack(destination);