package bufr import ( "fmt" "strings" "testing" ) func TestPos(t *testing.T) { r := NewReader(strings.NewReader("hello world\nsecond line")) unread := false for rn, err := r.Rune(); err == nil; rn, err = r.Rune() { index, line, col := r.Pos() fmt.Println(string(rn), index, line, col) if !unread && rn == '\n' { for i := 0; i < 5; i++ { r.UnreadRune() } unread = true } } } func TestEOF(t *testing.T) { r := NewReader(strings.NewReader("hello world\nasddsa")) for line, err := r.StringUntil(isNewline); err == nil; line, err = r.StringUntil(isNewline) { fmt.Println(line, err) } } func isNewline(rn rune) bool { return rn == '\n' }