Skip to content

Commit 9079580

Browse files
committed
refactor: standardize FEN handling and improve logging in test functions
1 parent 01517cc commit 9079580

File tree

5 files changed

+21
-7
lines changed

5 files changed

+21
-7
lines changed

Diff for: internal/assertions/valid_move_assertion.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@ func (a *ValidMoveAssertion) Run(response *http.Response, logger *logger.Logger)
2929
}
3030

3131
func moveIsValid(fenStr string, move string) bool {
32-
fen, err := chess.FEN(fenStr)
32+
var fen func(*chess.Game)
33+
var err error
34+
35+
fen, err = chess.FEN(fenStr)
3336
if err != nil {
34-
return false
37+
fenStr += " 0 1"
38+
fen, err = chess.FEN(fenStr)
39+
if err != nil {
40+
return false
41+
}
3542
}
3643

3744
game := chess.NewGame(fen)

Diff for: internal/stage_4.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package internal
33
import (
44
chess_bot_executable "github.com/codecrafters-io/gleam-chess-bot-tester/internal/chess-bot-executable"
55
"github.com/codecrafters-io/gleam-chess-bot-tester/internal/test_cases"
6+
"github.com/codecrafters-io/tester-utils/random"
67
"github.com/codecrafters-io/tester-utils/test_case_harness"
78
)
89

@@ -41,11 +42,12 @@ func test4(stageHarness *test_case_harness.TestCaseHarness) error {
4142
"r2qnrnk/p2b2b1/1p1p2pp/2pPpp2/1PP1P3/PRNBB3/3QNPPP/5RK1 w - -",
4243
}
4344

44-
for i, FEN := range FENs {
45+
POSITIONS := 3
46+
for i, FEN := range random.RandomElementsFromArray(FENs, POSITIONS) {
4547
if !checkFEN(FEN) {
4648
continue
4749
}
48-
stageHarness.Logger.Infof("%d/%d RUN Generate Chess Move for Position: %s", i+1, len(FENs), FEN)
50+
stageHarness.Logger.Infof("%d/%d RUN Generate Chess Move for Position: %s", i+1, POSITIONS, FEN)
4951

5052
test_case := test_cases.GetMoveTestCase{
5153
FEN: FEN,

Diff for: internal/stage_5.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,12 @@ func test5(stageHarness *test_case_harness.TestCaseHarness) error {
174174
"qn1kr2r/1pRbb3/pP5p/P2pP1pP/3N1pQ1/3B4/3B1PP1/R5K1 w - - 0 1",
175175
}
176176

177-
for i, FEN := range random.RandomElementsFromArray(FENs, 4) {
177+
POSITIONS := 4
178+
for i, FEN := range random.RandomElementsFromArray(FENs, POSITIONS) {
178179
if !checkFEN(FEN) {
179180
continue
180181
}
181-
stageHarness.Logger.Infof("%d/%d RUN Generate Chess Move for Position: %s", i+1, len(FENs), FEN)
182+
stageHarness.Logger.Infof("%d/%d RUN Generate Chess Move for Position: %s", i+1, POSITIONS, FEN)
182183

183184
testCase := test_cases.GetMoveTestCase{
184185
FEN: FEN,

Diff for: internal/test_cases/send_request_test_case.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func (tc *SendRequestTestCase) Run(logger *logger.Logger) error {
4343
if duration > 5*time.Second {
4444
return fmt.Errorf("request took too long to complete: %s", duration)
4545
}
46-
logger.Debugf("Request completed in %s", duration)
46+
// logger.Debugf("Request completed in %s", duration)
4747

4848
// Run the assertion
4949
if tc.Assertion != nil {

Diff for: internal/utils.go

+4
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,9 @@ func makeMove(fenStr string) (string, error) {
7171

7272
func checkFEN(FEN string) bool {
7373
_, err := chess.FEN(FEN)
74+
if err != nil {
75+
FEN += " 0 1"
76+
_, err = chess.FEN(FEN)
77+
}
7478
return err == nil
7579
}

0 commit comments

Comments
 (0)