diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 00:50:18 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 00:50:18 +0000 |
| commit | 8cb7089b2eb09d40d9497cea40d088d94676a8c6 (patch) | |
| tree | d4a2a33fe35807abc0cdeeb0be93edcbe75a4996 /tests/std/test_string_split.zc | |
| parent | 3a4a72a38675893c3a1854d05c72b957a6bd9364 (diff) | |
More docs, check 'docs/std'.
Diffstat (limited to 'tests/std/test_string_split.zc')
| -rw-r--r-- | tests/std/test_string_split.zc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/std/test_string_split.zc b/tests/std/test_string_split.zc new file mode 100644 index 0000000..496dbd1 --- /dev/null +++ b/tests/std/test_string_split.zc @@ -0,0 +1,57 @@ +import "std/string.zc" + +test "string_split_basic" { + var s = String::from("a,b,c"); + var parts = s.split(','); + + if (parts.length() != 3) { + println "Split length fail: {parts.length()}"; + exit(1); + } + + var p0 = parts.get(0); + var t0 = String::from("a"); + if (!p0.eq(&t0)) exit(1); + + var p1 = parts.get(1); + var t1 = String::from("b"); + if (!p1.eq(&t1)) exit(1); + + var p2 = parts.get(2); + var t2 = String::from("c"); + if (!p2.eq(&t2)) exit(1); + + for p in &parts { + p.free(); + } + parts.free(); +} + +test "string_split_edge" { + var s = String::from("hello"); + var parts = s.split(' '); // Not found + + if (parts.length() != 1) { + println "Split edge 1 failed"; + exit(1); + } + + var p0 = parts.get(0); + if (!p0.eq(&s)) exit(1); + + p0.free(); + parts.free(); + + var s2 = String::from("a,,b"); + var parts2 = s2.split(','); + if (parts2.length() != 3) { + println "Split edge 2 failed: {parts2.length()}"; + exit(1); + } + + var empty = parts2.get(1); + if (!empty.is_empty()) exit(1); + + for p in &parts2 { p.free(); } + parts2.free(); +} |
