code wiki / (root) / nx_kmp_search_test.nx

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}