From 57fb765bdc5819f8a367ad75c731a50da68b8d85 Mon Sep 17 00:00:00 2001 From: Jonas Knobloch Date: Tue, 17 Mar 2026 20:16:39 +0100 Subject: Update perplexity evaluator * Introduce results channel * Introduce jobs channel * Generalize evaluation via callback --- llm/perplexity_test.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 llm/perplexity_test.go (limited to 'llm/perplexity_test.go') diff --git a/llm/perplexity_test.go b/llm/perplexity_test.go new file mode 100644 index 0000000..81f10af --- /dev/null +++ b/llm/perplexity_test.go @@ -0,0 +1,45 @@ +package llm + +import ( + "fmt" + "testing" +) + +func TestEvaluator_estimateJobs(t *testing.T) { + type gold struct { + tokens int + window int + stride int + expected int + } + + tests := []gold{ + {tokens: 20, window: 10, stride: 3, expected: 4}, + {tokens: 20, window: 10, stride: 4, expected: 3}, + {tokens: 20, window: 10, stride: 5, expected: 3}, + + {tokens: 0, window: 1, stride: 1, expected: 0}, + {tokens: 1, window: 1, stride: 1, expected: 1}, + + {tokens: 0, window: 1024, stride: 1, expected: 0}, + {tokens: 1, window: 1, stride: 1024, expected: 1}, + } + + e := NewEvaluator[any]() + + for _, tt := range tests { + t.Run( + fmt.Sprintf("tokens%d_window%d_stride%d", tt.tokens, tt.window, tt.stride), + + func(t *testing.T) { + tokens := make([]int64, tt.tokens) + + got := e.estimateJobs(tokens, tt.window, tt.stride) + + if got != tt.expected { + t.Errorf("expected %d but got (%d, %d, %d) = %d", tt.expected, tt.tokens, tt.window, tt.stride, got) + } + }, + ) + } +} -- cgit v1.3.1