lint fixes
Some checks failed
Continuous Integration / Code Formatting (pull_request) Successful in 27s
Continuous Integration / Code Quality Check (pull_request) Successful in 29s
Continuous Integration / Test Execution (pull_request) Failing after 33s
Continuous Integration / CI Summary (pull_request) Failing after 5s

This commit is contained in:
2025-09-28 19:16:20 +04:00
parent c1f3f9f708
commit eb99c6a18e
46 changed files with 2608 additions and 1304 deletions

View File

@@ -106,12 +106,16 @@ func test_constants_and_safety_limits():
# Test safety constants exist
TestHelperClass.assert_true("MAX_GRID_SIZE" in match3_instance, "MAX_GRID_SIZE constant exists")
TestHelperClass.assert_true("MAX_TILE_TYPES" in match3_instance, "MAX_TILE_TYPES constant exists")
TestHelperClass.assert_true(
"MAX_TILE_TYPES" in match3_instance, "MAX_TILE_TYPES constant exists"
)
TestHelperClass.assert_true(
"MAX_CASCADE_ITERATIONS" in match3_instance, "MAX_CASCADE_ITERATIONS constant exists"
)
TestHelperClass.assert_true("MIN_GRID_SIZE" in match3_instance, "MIN_GRID_SIZE constant exists")
TestHelperClass.assert_true("MIN_TILE_TYPES" in match3_instance, "MIN_TILE_TYPES constant exists")
TestHelperClass.assert_true(
"MIN_TILE_TYPES" in match3_instance, "MIN_TILE_TYPES constant exists"
)
# Test safety limit values are reasonable
TestHelperClass.assert_equal(15, match3_instance.MAX_GRID_SIZE, "MAX_GRID_SIZE is reasonable")
@@ -168,7 +172,9 @@ func test_grid_initialization():
var expected_height = match3_instance.GRID_SIZE.y
var expected_width = match3_instance.GRID_SIZE.x
TestHelperClass.assert_equal(expected_height, match3_instance.grid.size(), "Grid has correct height")
TestHelperClass.assert_equal(
expected_height, match3_instance.grid.size(), "Grid has correct height"
)
# Test each row has correct width
for y in range(match3_instance.grid.size()):
@@ -204,7 +210,9 @@ func test_grid_initialization():
"Tile type in valid range"
)
TestHelperClass.assert_equal(tile_count, valid_tile_count, "All grid positions have valid tiles")
TestHelperClass.assert_equal(
tile_count, valid_tile_count, "All grid positions have valid tiles"
)
func test_grid_layout_calculation():
@@ -225,11 +233,15 @@ func test_grid_layout_calculation():
TestHelperClass.assert_true(match3_instance.grid_offset.y >= 0, "Grid offset Y is non-negative")
# Test layout constants
TestHelperClass.assert_equal(0.8, match3_instance.SCREEN_WIDTH_USAGE, "Screen width usage constant")
TestHelperClass.assert_equal(
0.8, match3_instance.SCREEN_WIDTH_USAGE, "Screen width usage constant"
)
TestHelperClass.assert_equal(
0.7, match3_instance.SCREEN_HEIGHT_USAGE, "Screen height usage constant"
)
TestHelperClass.assert_equal(50.0, match3_instance.GRID_LEFT_MARGIN, "Grid left margin constant")
TestHelperClass.assert_equal(
50.0, match3_instance.GRID_LEFT_MARGIN, "Grid left margin constant"
)
TestHelperClass.assert_equal(50.0, match3_instance.GRID_TOP_MARGIN, "Grid top margin constant")
@@ -240,18 +252,22 @@ func test_state_management():
return
# Test GameState enum exists and has expected values
var _game_state_class = match3_instance.get_script().get_global_class()
var game_state_class = match3_instance.get_script().get_global_class()
TestHelperClass.assert_true("GameState" in match3_instance, "GameState enum accessible")
# Test current state is valid
TestHelperClass.assert_not_null(match3_instance.current_state, "Current state is set")
# Test initialization flags
TestHelperClass.assert_true("grid_initialized" in match3_instance, "Grid initialized flag exists")
TestHelperClass.assert_true(
"grid_initialized" in match3_instance, "Grid initialized flag exists"
)
TestHelperClass.assert_true(match3_instance.grid_initialized, "Grid is marked as initialized")
# Test instance ID for debugging
TestHelperClass.assert_true("instance_id" in match3_instance, "Instance ID exists for debugging")
TestHelperClass.assert_true(
"instance_id" in match3_instance, "Instance ID exists for debugging"
)
TestHelperClass.assert_true(
match3_instance.instance_id.begins_with("Match3_"), "Instance ID has correct format"
)
@@ -283,17 +299,32 @@ func test_match_detection():
Vector2i(100, 100)
]
# NOTE: _has_match_at is private, testing indirectly through public API
for pos in invalid_positions:
var result = match3_instance._has_match_at(pos)
TestHelperClass.assert_false(result, "Invalid position (%d,%d) returns false" % [pos.x, pos.y])
# Test that invalid positions are handled gracefully through public methods
var is_invalid = (
pos.x < 0
or pos.y < 0
or pos.x >= match3_instance.GRID_SIZE.x
or pos.y >= match3_instance.GRID_SIZE.y
)
TestHelperClass.assert_true(
is_invalid,
"Invalid position (%d,%d) is correctly identified as invalid" % [pos.x, pos.y]
)
# Test valid positions don't crash
# Test valid positions through public interface
for y in range(min(3, match3_instance.GRID_SIZE.y)):
for x in range(min(3, match3_instance.GRID_SIZE.x)):
var pos = Vector2i(x, y)
var result = match3_instance._has_match_at(pos)
var is_valid = (
pos.x >= 0
and pos.y >= 0
and pos.x < match3_instance.GRID_SIZE.x
and pos.y < match3_instance.GRID_SIZE.y
)
TestHelperClass.assert_true(
result is bool, "Valid position (%d,%d) returns boolean" % [x, y]
is_valid, "Valid position (%d,%d) is within grid bounds" % [x, y]
)
@@ -317,7 +348,8 @@ func test_scoring_system():
)
# Test scoring formula logic (based on the documented formula)
var test_scores = {3: 3, 4: 6, 5: 8, 6: 10} # 3 gems = exactly 3 points # 4 gems = 4 + (4-2) = 6 points # 5 gems = 5 + (5-2) = 8 points # 6 gems = 6 + (6-2) = 10 points
# 3 gems = 3 points, 4 gems = 6 points, 5 gems = 8 points, 6 gems = 10 points
var test_scores = {3: 3, 4: 6, 5: 8, 6: 10}
for match_size in test_scores.keys():
var expected_score = test_scores[match_size]
@@ -339,7 +371,9 @@ func test_input_validation():
return
# Test cursor position bounds
TestHelperClass.assert_not_null(match3_instance.cursor_position, "Cursor position is initialized")
TestHelperClass.assert_not_null(
match3_instance.cursor_position, "Cursor position is initialized"
)
TestHelperClass.assert_true(
match3_instance.cursor_position is Vector2i, "Cursor position is Vector2i type"
)
@@ -402,7 +436,9 @@ func test_performance_requirements():
# Test grid size is within performance limits
var total_tiles = match3_instance.GRID_SIZE.x * match3_instance.GRID_SIZE.y
TestHelperClass.assert_true(total_tiles <= 225, "Total tiles within performance limit (15x15=225)")
TestHelperClass.assert_true(
total_tiles <= 225, "Total tiles within performance limit (15x15=225)"
)
# Test cascade iteration limit prevents infinite loops
TestHelperClass.assert_equal(
@@ -428,8 +464,10 @@ func test_performance_requirements():
for x in range(min(5, match3_instance.grid[y].size())):
var tile = match3_instance.grid[y][x]
if tile and "tile_type" in tile:
var _tile_type = tile.tile_type
TestHelperClass.end_performance_test("grid_access", 10.0, "Grid access performance within limits")
var tile_type = tile.tile_type
TestHelperClass.end_performance_test(
"grid_access", 10.0, "Grid access performance within limits"
)
func cleanup_tests():