From 43c4f78eb3d2af7778bab6e51d77588bec62930d Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 18 Jan 2026 15:57:40 +0000 Subject: Update docs + add '..<' + add typed embed. --- tests/control_flow/test_loops.zc | 8 ++++++++ tests/control_flow/test_match.zc | 3 ++- tests/features/embed_data.txt | 1 + tests/features/test_embed.zc | 26 ++++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/features/embed_data.txt (limited to 'tests') diff --git a/tests/control_flow/test_loops.zc b/tests/control_flow/test_loops.zc index 882ae7b..60ccc50 100644 --- a/tests/control_flow/test_loops.zc +++ b/tests/control_flow/test_loops.zc @@ -164,3 +164,11 @@ test "exclusive range regression check" { } assert(count3 == 5, "Expected 5 iterations for 0..5") } + +test "explicit exclusive range (..<)" { + var count4 = 0 + for i in 0..<5 { + count4 += 1 + } + assert(count4 == 5, "Expected 5 iterations for 0..<5") +} diff --git a/tests/control_flow/test_match.zc b/tests/control_flow/test_match.zc index bf757b1..ca185ae 100644 --- a/tests/control_flow/test_match.zc +++ b/tests/control_flow/test_match.zc @@ -24,7 +24,8 @@ fn classify_extended(n: int) -> int { match n { 1 || 2 => { return 100; }, // OR pattern with || 3 or 4 => { return 200; }, // OR pattern with 'or' - 5..8 => { return 300; }, // Range exclusive (5, 6, 7) + 5..<8 => { return 300; }, // Use ..< for exclusive range (originally 5..8) + 8..8 => { return 305; }, // Single valid? (empty range) 10..=15 => { return 400; }, // Range inclusive (10-15) _ => { return -1; } } diff --git a/tests/features/embed_data.txt b/tests/features/embed_data.txt new file mode 100644 index 0000000..980a0d5 --- /dev/null +++ b/tests/features/embed_data.txt @@ -0,0 +1 @@ +Hello World! diff --git a/tests/features/test_embed.zc b/tests/features/test_embed.zc index f6d9468..33acef2 100644 --- a/tests/features/test_embed.zc +++ b/tests/features/test_embed.zc @@ -53,5 +53,31 @@ test "test_embed" { ""; "Analysis successfully completed."; +} + +test "typed_embed" { + // String + var s = embed "tests/features/embed_data.txt" as string; + // "Hello World!\n" ? No newline in my file creation? + // echo "Hello World!" > ... likely adds newline. + // My previous tool 'write_to_file' wrote "Hello World!". It usually doesn't add newline unless specified? + // Let's verify start content. + if (s[0] != 'H') exit(101); + + // Fixed array + var arr = embed "tests/features/embed_data.txt" as u8[5]; + if (arr[0] != 'H') exit(102); + if (arr[4] != 'o') exit(103); + + // Slice + var sl = embed "tests/features/embed_data.txt" as u8[]; + if (sl.len < 5) exit(104); + if (sl.data[0] != 'H') exit(105); + + // Untyped regression + var raw = embed "tests/features/embed_data.txt"; + if (raw.len < 5) exit(106); + if (raw.data[0] != 'H') exit(107); + println "Typed embed tests passed"; } -- cgit v1.2.3