X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/7b6d0a81e0f3c8e33b1b76d5ecbc5bdb25a87249..e737005f89c7c663e1636830001730ad79396bdc:/view_test.go diff --git a/view_test.go b/view_test.go index 7184f8c..56abdd6 100644 --- a/view_test.go +++ b/view_test.go @@ -44,7 +44,7 @@ func TestViewMergesInOneBatchFromHighToLow(t *testing.T) { func TestViewMergesOnlyBuiltParents(t *testing.T) { tree := ViewPartTree{ - sizes: map[nodeKey]int{ + sizes: map[NodeKey]int{ {0, 0}: 1, {0, 1}: 1, {0, 2}: 1, @@ -60,27 +60,27 @@ func TestViewMergesOnlyBuiltParents(t *testing.T) { require.NoError(t, err) } - require.Equal(t, []nodeKey{{0, 0}, {0, 1}, {0, 2}, {0, 3}}, view.lines) + require.Equal(t, []NodeKey{{0, 0}, {0, 1}, {0, 2}, {0, 3}}, view.lines) require.True(t, view.merging) - tree.sizes[nodeKey{1, 0}] = 1 + tree.sizes[NodeKey{1, 0}] = 1 _, err := view.Append(tree) require.NoError(t, err) - require.Equal(t, []nodeKey{{1, 0}, {0, 2}, {0, 3}, {0, 4}}, view.lines) + require.Equal(t, []NodeKey{{1, 0}, {0, 2}, {0, 3}, {0, 4}}, view.lines) require.True(t, view.merging) - tree.sizes[nodeKey{1, 1}] = 1 - tree.sizes[nodeKey{1, 2}] = 1 - tree.sizes[nodeKey{2, 0}] = 1 + tree.sizes[NodeKey{1, 1}] = 1 + tree.sizes[NodeKey{1, 2}] = 1 + tree.sizes[NodeKey{2, 0}] = 1 _, err = view.Append(tree) require.NoError(t, err) - require.Equal(t, []nodeKey{{2, 0}, {1, 2}}, view.lines) + require.Equal(t, []NodeKey{{2, 0}, {1, 2}}, view.lines) require.False(t, view.merging) } func TestViewRendersPendingLinesWithoutTheirMessage(t *testing.T) { tree := ViewPartTree{ - sizes: map[nodeKey]int{ + sizes: map[NodeKey]int{ {0, 0}: 3, {0, 1}: 3, {1, 0}: 7, @@ -107,17 +107,17 @@ func TestViewCoarsenTakesTheCoarserLines(t *testing.T) { require.NoError(t, err) require.NoError(t, view.Coarsen(other, ViewBuiltTree{})) - require.Equal(t, []nodeKey{{1, 0}, {1, 1}, {0, 4}, {0, 5}}, view.lines) + require.Equal(t, []NodeKey{{1, 0}, {1, 1}, {0, 4}, {0, 5}}, view.lines) view.low = 2 require.NoError(t, view.Coarsen(other, ViewBuiltTree{})) - require.Equal(t, []nodeKey{{2, 0}, {1, 2}}, view.lines) + require.Equal(t, []NodeKey{{2, 0}, {1, 2}}, view.lines) require.False(t, view.merging) } func TestViewContextStopsAtTheFirstPendingLine(t *testing.T) { tree := ViewPartTree{ - sizes: map[nodeKey]int{ + sizes: map[NodeKey]int{ {0, 0}: 1, {0, 1}: 1, {1, 0}: 1, @@ -149,7 +149,7 @@ func (ViewBuiltTree) Built(level, index int) (bool, error) { } func (ViewBuiltTree) Node(level, index int) (Node, bool, error) { - return testNode(level, index, "a"), true, nil + return treeTestNode(level, index, "a"), true, nil } // ViewPushEntry is one entry of the rollback state list of the reference @@ -175,16 +175,16 @@ func (e *ViewPushEntry) starts() []int { // ViewPartTree is a tree with the built nodes of its sizes. type ViewPartTree struct { - sizes map[nodeKey]int + sizes map[NodeKey]int } func (p ViewPartTree) Built(level, index int) (bool, error) { - _, built := p.sizes[nodeKey{level, index}] + _, built := p.sizes[NodeKey{level, index}] return built, nil } func (p ViewPartTree) Node(level, index int) (Node, bool, error) { - size, built := p.sizes[nodeKey{level, index}] + size, built := p.sizes[NodeKey{level, index}] if !built { return Node{}, false, nil } @@ -194,10 +194,14 @@ func (p ViewPartTree) Node(level, index int) (Node, bool, error) { text = "aaa\naaa" } - return testNode(level, index, text), true, nil + return treeTestNode(level, index, text), true, nil } -// viewPush is the push of rollback_state_list.js. +// viewPush adds state to the newest end of states and returns the new list. An +// empty list gets one entry. When the newest entry is not kept, it becomes kept +// with its own state, and state is dropped. When it is kept, state becomes a +// new newest entry, and the state of the old newest entry goes to the older +// entries by the same push. func viewPush(state int, states *ViewPushEntry) *ViewPushEntry { if states == nil { return &ViewPushEntry{