20 lines
577 B
Go
20 lines
577 B
Go
package code
|
|
|
|
import "testing"
|
|
|
|
func TestBracketAt(t *testing.T) {
|
|
d := New([]byte("f(a[0]) {}\n)"))
|
|
if a, b, st := d.BracketAt(1); st != BracketMatched || a != 1 || b != 6 {
|
|
t.Fatalf("open paren: %d %d %v", a, b, st)
|
|
}
|
|
if a, b, st := d.BracketAt(9); st != BracketMatched || a != 9 || b != 8 {
|
|
t.Fatalf("caret between braces: %d %d %v", a, b, st)
|
|
}
|
|
if a, _, st := d.BracketAt(12); st != BracketUnmatched || a != 11 {
|
|
t.Fatalf("stray close: %d %v", a, st)
|
|
}
|
|
if _, _, st := New([]byte("abc")).BracketAt(1); st != BracketNone {
|
|
t.Fatalf("no bracket: %v", st)
|
|
}
|
|
}
|