diff options
| author | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-06-12 11:24:35 +0200 | 
|---|---|---|
| committer | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-06-12 11:24:35 +0200 | 
| commit | bff8eb4f41daede6b2057804b222aed5dda114bb (patch) | |
| tree | 4b44518383f96515325a1303f1394a61313a43cd /ui/buffers_test.go | |
| parent | Split lines between words (diff) | |
wip
Diffstat (limited to 'ui/buffers_test.go')
| -rw-r--r-- | ui/buffers_test.go | 87 | 
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! |  }  | 
