Ejemplo n.º 1
0
void horizontal_row0(CuTest* tc)
{
  int num_rows = 7;
  int num_columns = 7;
  int array[num_rows][num_columns];
  int answer;
  ct_initialize(num_rows, num_columns, array);

  placeToken(0, 0, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "Single 0 in column 0", NO_WINNER_YET, answer);

  placeToken(0, 1, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "0s in columns {0,1}", NO_WINNER_YET, answer);


  placeToken(0, 2, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "0s in columns {0,1, 2}", NO_WINNER_YET, answer);


  placeToken(0, 3, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "4 in a row, horizontal", 0, answer);
}
Ejemplo n.º 2
0
static void test_shipspeed(CuTest *tc) {
    ship *sh;
    const ship_type *stype;
    unit *cap, *crew;

    test_setup();
    sh = setup_ship();
    stype = sh->type;

    CuAssertIntEquals_Msg(tc, "ship without a captain cannot move", 0, shipspeed(sh, NULL));

    setup_crew(sh, 0, &cap, &crew);

    CuAssertPtrEquals(tc, cap, ship_owner(sh));
    CuAssertIntEquals_Msg(tc, "ship with fully skilled crew can sail at max speed", 2, shipspeed(sh, cap));
    CuAssertIntEquals_Msg(tc, "shipspeed without a hint defaults to captain", 2, shipspeed(sh, NULL));

    set_level(cap, SK_SAILING, stype->cptskill + 5);
    set_level(crew, SK_SAILING, (stype->sumskill - stype->cptskill) * 10);
    CuAssertIntEquals_Msg(tc, "higher skills should not affect top speed", 2, shipspeed(sh, cap));
    set_level(cap, SK_SAILING, stype->cptskill);
    set_level(crew, SK_SAILING, stype->sumskill - stype->cptskill);

    CuAssertIntEquals(tc, 2, shipspeed(sh, cap));

    set_level(crew, SK_SAILING, (stype->sumskill - stype->cptskill) * 11);
    set_level(cap, SK_SAILING, stype->cptskill + 10);
    CuAssertIntEquals_Msg(tc, "regular skills should not exceed sh.range", 2, shipspeed(sh, cap));
    test_teardown();
}
Ejemplo n.º 3
0
void vertical_column1(CuTest* tc)
{
  int num_rows = 7;
  int num_columns = 7;
  int array[num_rows][num_columns];
  int answer;
  ct_initialize(num_rows, num_columns, array);

  placeToken(0, 1, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "Single 0 in column 1", NO_WINNER_YET, answer);

  placeToken(0, 1, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "Two 0s in column 1", NO_WINNER_YET, answer);


  placeToken(0, 1, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "Three 0s in column 1", NO_WINNER_YET, answer);


  placeToken(0, 1, num_rows, num_columns, array);
  answer = winner(num_rows, num_columns, 4, array);
  CuAssertIntEquals_Msg(tc, "4 in a row, vertical", 0, answer);
}
Ejemplo n.º 4
0
static void test_shipspeed_max_range(CuTest *tc) {
    ship *sh;
    ship_type *stype;
    region *r;
    struct faction *f;
    unit *cap, *crew;

    test_setup();
    sh = setup_ship();
    setup_crew(sh, 0, &cap, &crew);
    config_set("movement.shipspeed.skillbonus", "5");
    r = sh->region;
    f = test_create_faction(NULL);
    assert(r && f);
    stype = st_get_or_create(sh->type->_name);

    set_level(cap, SK_SAILING, stype->cptskill + 4);
    set_level(crew, SK_SAILING, (stype->sumskill - stype->cptskill) * 4);
    CuAssertIntEquals_Msg(tc, "skill bonus requires at least movement.shipspeed.skillbonus points", 2, shipspeed(sh, cap));

    set_level(cap, SK_SAILING, stype->cptskill + 5);
    set_level(crew, SK_SAILING, (stype->sumskill - stype->cptskill) * 5);
    CuAssertIntEquals_Msg(tc, "skill bonus from movement.shipspeed.skillbonus", 3, shipspeed(sh, cap));

    set_level(cap, SK_SAILING, stype->cptskill + 15);
    scale_number(crew, 15);
    set_level(crew, SK_SAILING, stype->sumskill - stype->cptskill);
    CuAssertIntEquals_Msg(tc, "skill-bonus cannot exceed max_range", 4, shipspeed(sh, cap));
    test_teardown();
}
Ejemplo n.º 5
0
void place_token_invalid_index(CuTest *tc) {
    int num_rows = 100;
    int num_columns = 100;
    int array[num_rows][num_columns];
    int answer = 0;

    ct_initialize(num_rows, num_columns, array);
    answer = place_token(1, 100, num_rows, num_columns, array);
    CuAssertIntEquals_Msg(tc, "Should return error, invalid index ", -1, answer);
    answer = place_token(1, -1, num_rows, num_columns, array);
    CuAssertIntEquals_Msg(tc, "Should return error, invalid index ", -1, answer);
}
Ejemplo n.º 6
0
void placeToken_recognizes_already_placed_tokens(CuTest *tc) {
  int num_rows = 3;
  int num_columns = 3;
  int array[num_rows][num_columns];
  ct_initialize(num_rows, num_columns, array);

  placeToken(0, 2, num_rows, num_columns, array);
  placeToken(1, 2, num_rows, num_columns, array);

  CuAssertIntEquals_Msg(tc, "Drop 1 into empty column 3", 0, array[num_rows - 1][2]);
  CuAssertIntEquals_Msg(tc, "Drop 1 into empty column 3", 1, array[num_rows - 2][2]);

}
Ejemplo n.º 7
0
void placeToken_must_be_in_board(CuTest *tc) {
  int num_rows = 3;
  int num_columns = 3;
  int array[num_rows][num_columns];
  ct_initialize(num_rows, num_columns, array);

  placeToken(0, 3, num_rows, num_columns, array);
  placeToken(0, -1, num_rows, num_columns, array);

  CuAssertIntEquals_Msg(tc, "Must drop into board.", -1, array[num_rows - 1][0]);
  CuAssertIntEquals_Msg(tc, "Must drop into board.", -1, array[num_rows - 1][2]);


}
Ejemplo n.º 8
0
static void
test_world_player_foreach(CuTest *tc)
{
    const char *err = "world.c PLAYER_FOREACH macro FAIL";
    const char *username = "******";
    int max = MAX_PLAYERS;
    int mid = max / 2;
    player_t *player;
    player_t *plist[max];
    int i;

    if (max % 2 == 1) {
        CuFail(tc, "world.c PLAYER_FOREACH macro FAIL -- "
               "Rerun tests with even number of max players");
    }

    for (i = 0; i < max; ++i) {
        player = get_unused_player_slot();
        CuAssertIntEquals_Msg(tc, err, i + 1, player->index);
        player->username = username;
        if (i == mid - 1) {
            remove_player(player);
            continue;
        }

        plist[i] = player;
    }

    i = 0;
    player = NULL;
    PLAYER_LIST_FOREACH(player) {
        if (player->index == UNUSED) {
            ++i;
            continue;
        }

        CuAssertPtrEquals_Msg(tc, err, plist[i++], player);
    }

    player = get_unused_player_slot();
    CuAssertIntEquals_Msg(tc, err, mid, player->index);

    player = get_unused_player_slot();
    CuAssertPtrEquals_Msg(tc, err, NULL, player);

#if UNIT_TESTING_VERBOSITY_LEVEL >= 1
    printf("world.c PLAYER_FOREACH macro PASS\n");
#endif
}
Ejemplo n.º 9
0
void Test_uip_arp_arpin_2(CuTest *tc) {
	u8_t temp_buf[]= "\x11\x22\x33\x44\x55\x66\x77\x88\x99\x00\xAA\xBB\x08\x06"
"\x00\x01"
"\x08\x00"
"\x06"
"\x04"
"\x00\x02"
"\x77\x88\x99\x00\xAA\xBB"
"\xC0\xA8\x00\x03"
"\x11\x22\x33\x44\x55\x66"
"\xC0\xA8\x00\x02"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00";

u8_t expect_buf[]= "\x77\x88\x99\x00\xAA\xBB\x11\x22\x33\x44\x55\x66\x08\x06"
"\x00\x01"
"\x08\x00"
"\x06"
"\x04"
"\x00\x02"
"\x11\x22\x33\x44\x55\x66"
"\xC0\xA8\x00\x02"
"\x77\x88\x99\x00\xAA\xBB"
"\xC0\xA8\x00\x03";

	memcpy(uip_buf,temp_buf,60);
	uip_len=42;
	uip_arp_arpin();
	CuAssertIntEquals_Msg(tc,"arpin_len 2",0,uip_len);
	CuAssertTrue_Msg(tc,"tabl check 2",0==memcmp(arp_table,"\xC0\xA8\x00\x03"
			"\x77\x88\x99\x00\xAA\xBB\x00",11));

}
Ejemplo n.º 10
0
static void
parse_response(CuTest *tc, struct altera_syscons_parser *parser,
	const char *input, const char *expected_result)
{
	CuAssertPtrNotNull(tc, parser);
	CuAssertPtrNotNull(tc, parser->parse_response);

	const char *begin, *end;
	int ret = parser->parse_response(input, strlen(input),
		&begin, &end);

	CuAssertIntEquals_Msg(tc, "parse error",
		BERI_DEBUG_SUCCESS, ret);

	CuAssertPtrNotNullMsg(tc, "parsed NULL 'begin'", begin);
	CuAssertPtrNotNullMsg(tc, "parsed NULL 'end'", end);
	CuAssert(tc, "begin > end", (begin <= end));

	char result[end - begin + 1];
	strncpy(result, begin, end - begin);
	result[end - begin] = '\0';

	CuAssertStrEquals_Msg(tc, "unexpected result",
		expected_result, result);
}
Ejemplo n.º 11
0
static void
check_path(CuTest *tc, struct altera_syscons_parser *parser,
	const char *input, const char *cable,
	int expected_result, const char *expected_path)
{
	const char *begin, *end;

	CuAssertPtrNotNull(tc, parser);
	CuAssertPtrNotNull(tc, parser->parse_service_path);

	int ret = parser->parse_service_path(input, strlen(input), cable,
		&begin, &end);

	CuAssertIntEquals_Msg(tc, cable, expected_result, ret);

	if (expected_result == BERI_DEBUG_SUCCESS) {
		CuAssertPtrNotNullMsg(tc, "parsed NULL 'begin'", begin);
		CuAssertPtrNotNullMsg(tc, "parsed NULL 'end'", end);
		CuAssert(tc, "begin > end", (begin <= end));

		char result[end - begin + 1];
		strncpy(result, begin, end - begin);
		result[end - begin] = '\0';

		CuAssertStrEquals_Msg(tc, "unexpected path",
			expected_path, result);
	}
}
Ejemplo n.º 12
0
void checkRightDiagonal_returns_negative_one_if_no_winner(CuTest *tc) {
  int board[3][3];
  ct_initialize(3, 3, board);

  int answer = checkRightDiagonal(3, 3, board, 3);
  CuAssertIntEquals_Msg(tc, "No winner.", -1, answer);
}
Ejemplo n.º 13
0
void winner_fixes_kurmas_failure(CuTest *tc) {
  int board[8][8];
  ct_initialize(8, 8, board);

  board[7][1] = 0;
  board[6][1] = 1;
  board[5][1] = 0;
  board[4][1] = 1;

  board[7][2] = 1;
  board[6][2] = 0;
  board[5][2] = 1;
  board[4][2] = 0;

  board[7][3] = 0;
  board[6][3] = 1;
  board[5][3] = 0;
  board[4][3] = 1;

  board[7][4] = 1;

  int answer = winner(8, 8, 4, board);
  CuAssertIntEquals_Msg(tc, "Player 1.", 1, answer);

}
Ejemplo n.º 14
0
void kurmas_test(CuTest *tc) {
  int num_rows = 8;
  int num_columns = 8;
  int array[num_rows][num_columns];
  int answer;
  ct_initialize(num_rows, num_columns, array);

  placeToken(0, 1, num_rows, num_columns, array);
  placeToken(1, 1, num_rows, num_columns, array);
  placeToken(0, 1, num_rows, num_columns, array);
  placeToken(1, 1, num_rows, num_columns, array);

  placeToken(1, 2, num_rows, num_columns, array);
  placeToken(0, 2, num_rows, num_columns, array);
  placeToken(1, 2, num_rows, num_columns, array);
  placeToken(0, 2, num_rows, num_columns, array);

  placeToken(0, 3, num_rows, num_columns, array);
  placeToken(1, 3, num_rows, num_columns, array);
  placeToken(0, 3, num_rows, num_columns, array);
  placeToken(1, 3, num_rows, num_columns, array);

  placeToken(1, 4, num_rows, num_columns, array);

  answer = winner(num_rows, num_columns, 4, array);

  CuAssertIntEquals_Msg(tc, "Player 1", 1, answer);
}
Ejemplo n.º 15
0
static void test_shipspeed_damage(CuTest *tc) {
    ship *sh;
    unit *cap, *crew;

    test_setup();
    sh = setup_ship();
    setup_crew(sh, 0, &cap, &crew);
    assert(sh && cap && crew);

    sh->damage = 1;
    CuAssertIntEquals_Msg(tc, "minimally damaged ships lose no range", 2, shipspeed(sh, cap));
    sh->damage = sh->size * DAMAGE_SCALE / 2;
    CuAssertIntEquals_Msg(tc, "damaged ships lose range", 1, shipspeed(sh, cap));
    sh->damage = sh->size * DAMAGE_SCALE;
    CuAssertIntEquals_Msg(tc, "fully damaged ships have no range", 0, shipspeed(sh, cap));
    test_teardown();
}
Ejemplo n.º 16
0
void place_token_c99(CuTest *tc) {

    int num_rows = 100;
    int num_columns = 100;
    int array[num_rows][num_columns];
    ct_initialize(num_rows, num_columns, array);

    place_token(1, 99, num_rows, num_columns, array);
    CuAssertIntEquals_Msg(tc, "Drop 1 into empty column 99", 1, array[num_rows - 1][99]);
    int r, c;
    for (r = 0; r < num_rows; r++) {
        for (c = 0; c < num_columns; c++) {
            if (r != (num_rows - 1) || c != 99) {
                CuAssertIntEquals_Msg(tc, "Should be empty", EMPTY, array[r][c]);
            }
        }
    }
}
Ejemplo n.º 17
0
void placeToken_c1(CuTest *tc) {

  int num_rows = 7;
  int num_columns = 7;
  int array[num_rows][num_columns];
  ct_initialize(num_rows, num_columns, array);

  placeToken(1, 3, num_rows, num_columns, array);

  // make sure there is a 1 at the bottom of column 3 and a -1 everywhere else
  CuAssertIntEquals_Msg(tc, "Drop 1 into empty column 3", 1, array[num_rows - 1][3]);
  int r, c;
  for (r = 0; r < num_rows; r++) {
    for (c = 0; c < num_columns; c++) {
      if (r != (num_rows - 1) || c != 3) {
	CuAssertIntEquals_Msg(tc, "Should be empty", EMPTY, array[r][c]);
      }
    }
  }
}
Ejemplo n.º 18
0
void checkRows_returns_winner_if_exists(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);
  board[3][0] = 1;
  board[3][1] = 1;
  board[3][2] = 1;
  board[3][3] = 1;

  int answer = checkRows(4, 4, board, 4);
  CuAssertIntEquals_Msg(tc, "Player 1.", 1, answer);
}
Ejemplo n.º 19
0
void checkRightDiagonal_returns_winner_if_there_is_one(CuTest *tc) {
  int board[3][3];
  ct_initialize(3, 3, board);

  board[0][0] = 0;
  board[1][1] = 0;
  board[2][2] = 0;

  int answer = checkRightDiagonal(3, 3, board, 3);
  CuAssertIntEquals_Msg(tc, "Player 0.", 0, answer);
}
Ejemplo n.º 20
0
void checkRows_returns_negative_one_if_no_winner(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);
  board[3][0] = 1;
  board[3][1] = -1;
  board[3][2] = 1;
  board[3][3] = 1;

  int answer = checkRows(4, 4, board, 4);
  CuAssertIntEquals_Msg(tc, "No winner", -1, answer);
}
Ejemplo n.º 21
0
void checkRightDiagonal_can_find_winners_below_largest_diagonal(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);

  board[0][1] = 0;
  board[1][2] = 0;
  board[2][3] = 0;

  int answer = checkRightDiagonal(4, 4, board, 3);
  CuAssertIntEquals_Msg(tc, "Player 0.", 0, answer);
}
Ejemplo n.º 22
0
void checkRightDiagonal_can_use_larger_boards(CuTest *tc) {
  int board[5][5];
  ct_initialize(5, 5, board);

  board[1][2] = 1;
  board[2][3] = 1;
  board[3][4] = 1;

  int answer = checkRightDiagonal(5, 5, board, 3);
  CuAssertIntEquals_Msg(tc, "Player 0.", 1, answer);
}
Ejemplo n.º 23
0
void checkLeftDiagonal_can_find_winners_above_below_largest_diagonal(CuTest *tc) {
  int board[5][5];
  ct_initialize(5, 5, board);

  board[3][0] = 1;
  board[2][1] = 1;
  board[1][2] = 1;

  int answer = checkLeftDiagonal(5, 5, board, 3);
  CuAssertIntEquals_Msg(tc, "Player 0.", 1, answer);
}
Ejemplo n.º 24
0
void winner_returns_left_diagonal_winner(CuTest *tc) {
  int board[3][3];
  ct_initialize(3, 3, board);

  board[2][0] = 1;
  board[1][1] = 1;
  board[0][2] = 1;

  int answer = winner(3, 3, 3, board);
  CuAssertIntEquals_Msg(tc, "Player 1.", 1, answer);

}
Ejemplo n.º 25
0
void checkColumns_does_not_recognize_negative_one_as_winner(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);

  board[0][1] = -1;
  board[1][1] = -1;
  board[2][1] = -1;
  board[3][1] = -1;

  int answer = winner(4, 4, 4, board);
  CuAssertIntEquals_Msg(tc, "No one wins", -1, answer);
}
Ejemplo n.º 26
0
void winner_returns_vertical_winner(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);

  board[0][2] = 1;
  board[1][2] = 1;
  board[2][2] = 1;
  board[3][2] = 1;

  int answer = winner(4, 4, 4, board);
  CuAssertIntEquals_Msg(tc, "Player 1.", 1, answer);
}
Ejemplo n.º 27
0
void checkRightDiagonal_resets_count_properly(CuTest *tc) {
  int board[5][5];
  ct_initialize(5, 5, board);

  board[0][0] = 0;
  board[1][1] = 0;
  board[2][2] = 1;
  board[3][3] = 1;

  int answer = checkRightDiagonal(5, 5, board, 3);
  CuAssertIntEquals_Msg(tc, "No Winner.", -1, answer);
}
Ejemplo n.º 28
0
void checkColumns_returns_negative_one_if_no_winner(CuTest *tc) {
  int board[4][4];
  ct_initialize(4, 4, board);

  board[0][1] = 1;
  board[1][1] = 1;
  board[2][1] = 0;
  board[3][1] = 1;

  int answer = winner(4, 4, 4, board);
  CuAssertIntEquals_Msg(tc, "No one wins", -1, answer);
}
Ejemplo n.º 29
0
void checkColumns_properly_resets_count(CuTest *tc) {
  int board[5][5];
  ct_initialize(5, 5, board);

  board[0][1] = 1;
  board[1][1] = 1;
  board[2][1] = 0;
  board[3][1] = 1;
  board[4][1] = 1;

  int answer = winner(5, 5, 3, board);
  CuAssertIntEquals_Msg(tc, "No one wins", -1, answer);
}
Ejemplo n.º 30
0
void checkLeftDiagonal_properly_resets_count_top_loop(CuTest *tc) {
  int board[5][5];
  ct_initialize(5, 5, board);

  board[4][1] = 0;
  board[3][2] = 0;
  board[2][3] = 1;
  board[1][4] = 1;

  int answer = checkLeftDiagonal(5, 5, board, 3);
  CuAssertIntEquals_Msg(tc, "No winner.", -1, answer);

}