package bufr import ( "fmt" "strings" "testing" ) func TestPos(t *testing.T) { r := New(strings.NewReader("hello world\nsecond line")) unread := false for rn, err := r.Rune(); err == nil; rn, err = r.Rune() { pos := r.Pos() fmt.Println(string(rn), pos.Index, pos.Line, pos.Column) if !unread && rn == '\n' { for i := 0; i < 5; i++ { r.UnreadRune() } unread = true } } } func TestEOF(t *testing.T) { r := New(strings.NewReader("hello world\nasddsa")) var line string var err error for line, err = r.StringUntil(IsNewLine); err == nil; line, err = r.StringUntil(IsNewLine) { fmt.Println(line, err) } fmt.Println(line, err) }