summaryrefslogtreecommitdiff
path: root/ui/buffers_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/buffers_test.go')
-rw-r--r--ui/buffers_test.go87
1 files changed, 72 insertions, 15 deletions
diff --git a/ui/buffers_test.go b/ui/buffers_test.go
index fdcbece..ca71864 100644
--- a/ui/buffers_test.go
+++ b/ui/buffers_test.go
@@ -8,6 +8,7 @@ func assertSplitPoints(t *testing.T, line string, expected []Point) {
if len(l.SplitPoints) != len(expected) {
t.Errorf("%q: expected %d split points got %d", line, len(expected), len(l.SplitPoints))
+ return
}
for i := 0; i < len(expected); i++ {
@@ -20,23 +21,31 @@ func assertSplitPoints(t *testing.T, line string, expected []Point) {
if e.I != a.I {
t.Errorf("%q, point #%d: expected I=%d got %d", line, i, e.I, a.I)
}
+ if e.Split != a.Split {
+ t.Errorf("%q, point #%d: expected Split=%t got %t", line, i, e.Split, a.Split)
+ }
}
}
func TestLineSplitPoints(t *testing.T) {
assertSplitPoints(t, "hello", []Point{
- {X: 5, I: 5},
+ {X: 5, I: 5, Split: true},
})
assertSplitPoints(t, "hello world", []Point{
- {X: 5, I: 5},
- {X: 11, I: 11},
+ {X: 5, I: 5, Split: true},
+ {X: 6, I: 6, Split: false},
+ {X: 11, I: 11, Split: true},
})
assertSplitPoints(t, "lorem ipsum dolor shit amet", []Point{
- {X: 5, I: 5},
- {X: 11, I: 11},
- {X: 17, I: 17},
- {X: 22, I: 22},
- {X: 27, I: 27},
+ {X: 5, I: 5, Split: true},
+ {X: 6, I: 6, Split: false},
+ {X: 11, I: 11, Split: true},
+ {X: 12, I: 12, Split: false},
+ {X: 17, I: 17, Split: true},
+ {X: 18, I: 18, Split: false},
+ {X: 22, I: 22, Split: true},
+ {X: 23, I: 23, Split: false},
+ {X: 27, I: 27, Split: true},
})
}
@@ -48,16 +57,64 @@ func assertRenderedHeight(t *testing.T, line string, width int, expected int) {
actual := l.RenderedHeight(width)
if actual != expected {
- t.Errorf("%q (width=%d) expected to take %d lines, takes %d", line, width, expected, actual)
+ t.Errorf("%q with width=%d expected to take %d lines, takes %d", line, width, expected, actual)
}
}
func TestRenderedHeight(t *testing.T) {
- assertRenderedHeight(t, "hello world", 100, 1)
- assertRenderedHeight(t, "hello world", 10, 2)
+ assertRenderedHeight(t, "0123456789", 1, 10)
+ assertRenderedHeight(t, "0123456789", 2, 5)
+ assertRenderedHeight(t, "0123456789", 3, 4)
+ assertRenderedHeight(t, "0123456789", 4, 3)
+ assertRenderedHeight(t, "0123456789", 5, 2)
+ assertRenderedHeight(t, "0123456789", 6, 2)
+ assertRenderedHeight(t, "0123456789", 7, 2)
+ assertRenderedHeight(t, "0123456789", 8, 2)
+ assertRenderedHeight(t, "0123456789", 9, 2)
+ assertRenderedHeight(t, "0123456789", 10, 1)
+ assertRenderedHeight(t, "0123456789", 11, 1)
+
+ // LEN=9, WIDTH=9
+ assertRenderedHeight(t, "take care", 1, 8) // |t|a|k|e|c|a|r|e|
+ assertRenderedHeight(t, "take care", 2, 4) // |ta|ke|ca|re|
+ assertRenderedHeight(t, "take care", 3, 3) // |tak|e c|are|
+ assertRenderedHeight(t, "take care", 4, 2) // |take|care|
+ assertRenderedHeight(t, "take care", 5, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 6, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 7, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 8, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 9, 1) // |take care|
+ assertRenderedHeight(t, "take care", 10, 1) // |take care |
+
+ // LEN=10, WIDTH=10
+ assertRenderedHeight(t, "take care", 1, 8) // |t|a|k|e|c|a|r|e|
+ assertRenderedHeight(t, "take care", 2, 4) // |ta|ke|ca|re|
+ assertRenderedHeight(t, "take care", 3, 4) // |tak|e |car|e |
+ assertRenderedHeight(t, "take care", 4, 2) // |take|care|
+ assertRenderedHeight(t, "take care", 5, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 6, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 7, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 8, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 9, 2) // |take |care |
+ assertRenderedHeight(t, "take care", 10, 1) // |take care|
+ assertRenderedHeight(t, "take care", 11, 1) // |take care |
- assertRenderedHeight(t, "have a good day!", 100, 1)
- assertRenderedHeight(t, "have a good day!", 10, 2)
- assertRenderedHeight(t, "have a good day!", 6, 3)
- assertRenderedHeight(t, "have a good day!", 4, 4)
+ // LEN=16, WIDTH=16
+ assertRenderedHeight(t, "have a good day!", 1, 13) // |h|a|v|e|a|g|o|o|d|d|a|y|!|
+ assertRenderedHeight(t, "have a good day!", 2, 7) // |ha|ve|a |go|od|da|y!|
+ assertRenderedHeight(t, "have a good day!", 3, 5) // |hav|e a|goo|d d|ay!|
+ assertRenderedHeight(t, "have a good day!", 4, 4) // |have|a |good|day!|
+ assertRenderedHeight(t, "have a good day!", 5, 3) // |have |a good|day! |
+ assertRenderedHeight(t, "have a good day!", 6, 3) // |have a|good |day! |
+ assertRenderedHeight(t, "have a good day!", 7, 3) // |have a |good |day! |
+ assertRenderedHeight(t, "have a good day!", 8, 3) // |have a |good |day! |
+ assertRenderedHeight(t, "have a good day!", 9, 2) // |have a |good day!|
+ assertRenderedHeight(t, "have a good day!", 10, 2) // |have a |good day! |
+ assertRenderedHeight(t, "have a good day!", 11, 2) // |have a good|day! |
+ assertRenderedHeight(t, "have a good day!", 12, 2) // |have a good |day! |
+ assertRenderedHeight(t, "have a good day!", 13, 2) // |have a good |day! |
+ assertRenderedHeight(t, "have a good day!", 14, 2) // |have a good |day! |
+ assertRenderedHeight(t, "have a good day!", 15, 2) // |have a good |day! |
+ assertRenderedHeight(t, "have a good day!", 16, 1) // |have a good day!|
+ assertRenderedHeight(t, "have a good day!", 17, 1) // |have a good day! |
}