mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 14:48:47 +00:00
Fix strings.index_any on small strings
This commit is contained in:
@@ -479,7 +479,7 @@ last_index :: proc(s, substr: string) -> int {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// index_any returns the index of the first char of `chars` found in `s`. -1 if not found.
|
||||||
index_any :: proc(s, chars: string) -> int {
|
index_any :: proc(s, chars: string) -> int {
|
||||||
if chars == "" {
|
if chars == "" {
|
||||||
return -1
|
return -1
|
||||||
@@ -504,8 +504,8 @@ index_any :: proc(s, chars: string) -> int {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for c, i in chars {
|
for c in chars {
|
||||||
if index_rune(chars, c) >= 0 {
|
if i := index_rune(s, c); i >= 0 {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package test_core_image
|
||||||
|
|
||||||
|
import "core:strings"
|
||||||
|
import "core:testing"
|
||||||
|
|
||||||
|
@test
|
||||||
|
test_index_any_small_string_not_found :: proc(t: ^testing.T) {
|
||||||
|
index := strings.index_any(".", "/:\"")
|
||||||
|
testing.log(t, index)
|
||||||
|
testing.expect(t, index == -1, "index_any should be negative")
|
||||||
|
}
|
||||||
|
|
||||||
|
@test
|
||||||
|
test_index_any_larger_string_not_found :: proc(t: ^testing.T) {
|
||||||
|
index := strings.index_any("aaaaaaaa.aaaaaaaa", "/:\"")
|
||||||
|
testing.expect(t, index == -1, "index_any should be negative")
|
||||||
|
}
|
||||||
|
|
||||||
|
@test
|
||||||
|
test_index_any_small_string_found :: proc(t: ^testing.T) {
|
||||||
|
index := strings.index_any(".", "/:.\"")
|
||||||
|
testing.expect(t, index == 0, "index_any should be 0")
|
||||||
|
}
|
||||||
|
|
||||||
|
@test
|
||||||
|
test_index_any_larger_string_found :: proc(t: ^testing.T) {
|
||||||
|
index := strings.index_any("aaaaaaaa:aaaaaaaa", "/:\"")
|
||||||
|
testing.expect(t, index == 8, "index_any should be 8")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user