From cea196751be945998a46e3646a45a83d54443528 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 04:50:25 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20[Testing=20Improvement]=20Add=20?= =?UTF-8?q?explicit=20pop=20tests=20for=20ArrayList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add comprehensive tests for `ArrayList.pop` functionality to ensure edge cases are covered. Added tests for popping from an empty/cleared list, and asserting out-of-bounds `get` calls after `pop` operations reduce the list's valid length. Co-authored-by: ulac000000 <132948319+ulac000000@users.noreply.github.com> --- echo-core-zig/src/data/arraylist.zig | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/echo-core-zig/src/data/arraylist.zig b/echo-core-zig/src/data/arraylist.zig index 80a3f42..65d1c2a 100644 --- a/echo-core-zig/src/data/arraylist.zig +++ b/echo-core-zig/src/data/arraylist.zig @@ -109,3 +109,24 @@ test "ArrayList get out of bounds" { try std.testing.expectEqual(@as(?*const i32, null), list.get(1)); try std.testing.expectEqual(@as(?*const i32, null), list.get(100)); } + +test "ArrayList clear then pop returns null" { + var list = ArrayList(i32).init(std.testing.allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + list.clear(); + + try std.testing.expectEqual(@as(?i32, null), list.pop()); +} + +test "ArrayList get after pop returns out of bounds" { + var list = ArrayList(i32).init(std.testing.allocator); + defer list.deinit(); + + try list.append(100); + try std.testing.expectEqual(@as(?i32, 100), list.pop()); + + try std.testing.expectEqual(@as(?*const i32, null), list.get(0)); +}