package braille import ( "reflect" "testing" ) func TestLineComposesFocusedRegionWithoutChangingSpacing(t *testing.T) { line := Line{Regions: []Region{ {Text: "Context "}, {Text: "é界", Cursor: 1}, {Text: " entry"}, }, Focus: 1} frame, err := line.Frame() if err != nil || !reflect.DeepEqual(frame, Frame{Text: "Context é界 entry", Cursor: 9}) { t.Fatalf("frame=%+v err=%v", frame, err) } line.Focus = -1 frame, err = line.Frame() if err != nil || frame.Cursor != -1 { t.Fatalf("unfocused frame=%+v err=%v", frame, err) } } func TestLineRejectsInvalidFocusAndCursor(t *testing.T) { for _, line := range []Line{ {Focus: 0}, {Regions: []Region{{Text: "x"}}, Focus: -2}, {Regions: []Region{{Text: "x", Cursor: 2}}, Focus: 0}, } { if _, err := line.Frame(); err == nil { t.Fatalf("accepted invalid line %+v", line) } } }