diff options
Diffstat (limited to 'llm/perplexity_test.go')
| -rw-r--r-- | llm/perplexity_test.go | 45 |
1 files changed, 45 insertions, 0 deletions
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) + } + }, + ) + } +} |
