support ratio layouts

This commit is contained in:
2021-07-04 13:49:53 -04:00
parent 78d80aef6c
commit a6f958ccfb
2 changed files with 121 additions and 4 deletions

View File

@@ -55,6 +55,7 @@ func TestContainerTwoBoxesHStack(t *testing.T) {
t.Fail()
}
}
func TestContainerThreeBoxesUnevenHStack(t *testing.T) {
expect := `┌─ one ──┐┌─ two ──┐┌─ three
│ ││ ││ │
@@ -82,6 +83,34 @@ func TestContainerThreeBoxesUnevenHStack(t *testing.T) {
}
}
func TestContainerTwoBoxesHPercentStack(t *testing.T) {
expect := `┌─ one ──────┐┌─ two ┐
│ ││ │
│ ││ │
│ ││ │
└────────────┘└──────┘
`
m := &MockScreen{}
one := NewBox("one", nil, Contents{})
two := NewBox("two", nil, Contents{})
container := NewContainer(
Contents{
{Container: one, Offsets: Offsets{Percent: 2}},
{Container: two, Offsets: Offsets{Percent: 1}}},
LayoutHorizontalPercent,
)
m.Init()
m.Resize(0, 0, 5, 22)
container.SetSize(0, 0, 5, 22)
container.Draw(m)
result := m.DumpContents()
if result != expect {
fmt.Printf("expected:\n%+v", expect)
fmt.Printf("actual:\n%+v", result)
t.Fail()
}
}
func TestContainerTwoBoxesVStack(t *testing.T) {
expect := `┌─ one ──┐
│ │
@@ -112,3 +141,36 @@ func TestContainerTwoBoxesVStack(t *testing.T) {
t.Fail()
}
}
func TestContainerTwoBoxesPercentageVStack(t *testing.T) {
expect := `┌─ one ──┐
│ │
│ │
│ │
│ │
└────────┘
┌─ two ──┐
│ │
│ │
└────────┘
`
m := &MockScreen{}
one := NewBox("one", nil, Contents{})
two := NewBox("two", nil, Contents{})
container := NewContainer(
Contents{
{Container: one, Offsets: Offsets{Percent: 2}},
{Container: two, Offsets: Offsets{Percent: 1}}},
LayoutVerticalPercent,
)
m.Init()
m.Resize(0, 0, 10, 10)
container.SetSize(0, 0, 10, 10)
container.Draw(m)
result := m.DumpContents()
if result != expect {
fmt.Printf("expected:\n%+v", expect)
fmt.Printf("actual:\n%+v", result)
t.Fail()
}
}