X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/9f17bfb1173524553fff5301b0664267b430e6e3..e5343bd4c3ec69192e92f4be339b855eef36b6ec:/memory_test.go?ds=inline diff --git a/memory_test.go b/memory_test.go index b5bddb0..426654a 100644 --- a/memory_test.go +++ b/memory_test.go @@ -17,12 +17,15 @@ func TestMemoryRestartLoadsTheSameView(t *testing.T) { memory.chat.high = 200 memory.chat.low = 100 + memory.cview.high = 80 + memory.cview.low = 40 for n := range 100 { _, err = memory.Append("user", fmt.Sprint(n)) require.NoError(t, err) } view := memory.View() + context := memory.Context(0, 100) saved, err := os.ReadFile(filepath.Join(root, "view.json")) require.NoError(t, err) require.Less(t, len(memory.chat.lines), 100) @@ -36,12 +39,42 @@ func TestMemoryRestartLoadsTheSameView(t *testing.T) { }() require.Equal(t, view, memory.View()) + require.Equal(t, context, memory.Context(0, 100)) loaded, err := os.ReadFile(filepath.Join(root, "view.json")) require.NoError(t, err) require.Equal(t, saved, loaded) } +func TestMemoryKeepsTheCompactionViewCoarser(t *testing.T) { + memory, err := openMemory(t.Context(), t.TempDir(), newTestClock().Now) + require.NoError(t, err) + + defer func() { + require.NoError(t, memory.Close()) + }() + + memory.chat.high = 200 + memory.chat.low = 100 + memory.cview.high = 80 + memory.cview.low = 40 + for n := range 64 { + _, err = memory.Append("user", fmt.Sprint(n%10)) + require.NoError(t, err) + + coarse := 0 + for _, line := range memory.chat.lines { + outer := memory.cview.lines[coarse] + for nodeEnd(outer.level, outer.index) <= line.index<