nx_kmp_search_test.nx source
↩ module page · 16 lines · 1118 B
1import "nx_syscalls.nx"
2import "nx_kmp_search.nx"
3
4func main() -> i64 {
5 if nx_kmp_search("hello" as *u8, 5, "" as *u8, 0) != 0 { return __syscall(93, 1, 0, 0, 0, 0, 0) }
6 if nx_kmp_search("abc" as *u8, 3, "a" as *u8, 1) != 0 { return __syscall(93, 2, 0, 0, 0, 0, 0) }
7 if nx_kmp_search("abc" as *u8, 3, "c" as *u8, 1) != 2 { return __syscall(93, 3, 0, 0, 0, 0, 0) }
8 if nx_kmp_search("abc" as *u8, 3, "xyz" as *u8, 3) != -1 { return __syscall(93, 4, 0, 0, 0, 0, 0) }
9 if nx_kmp_search("hello world" as *u8, 11, "world" as *u8, 5) != 6 { return __syscall(93, 5, 0, 0, 0, 0, 0) }
10 if nx_kmp_search("hi" as *u8, 2, "hello" as *u8, 5) != -1 { return __syscall(93, 6, 0, 0, 0, 0, 0) }
11 if nx_kmp_search("abcabcabc" as *u8, 9, "abc" as *u8, 3) != 0 { return __syscall(93, 7, 0, 0, 0, 0, 0) }
12 if nx_kmp_search("aaaaaaaaab" as *u8, 10, "aaaab" as *u8, 5) != 5 { return __syscall(93, 8, 0, 0, 0, 0, 0) }
13 // KMP-specific stress: pathological for naive search
14 if nx_kmp_search("aaaaaaab" as *u8, 8, "aab" as *u8, 3) != 5 { return __syscall(93, 9, 0, 0, 0, 0, 0) }
15 return 0
16}