internal/autogen/sam_test.go
Rama main · réplica de lectura del repositorio original.
package autogen
import (
"strings"
"testing"
)
// A *.ggml SAM file is discovered by name, emitted as a sam3_server model, and
// placed in a persistent non-exclusive coexist group; a plain .ggml is ignored.
func TestAutogen_samDiscoverEmitAndGroup(t *testing.T) {
dir := t.TempDir()
writeStub(t, dir, "sam2.1_hiera_tiny_f16.ggml", 22_000_000)
writeStub(t, dir, "not-a-model.ggml", 1024) // no sam/hiera token -> ignored
rows, err := DiscoverGgufModels(dir)
if err != nil {
t.Fatal(err)
}
var sam *GgufRow
for i := range rows {
if rows[i].IsSam {
sam = &rows[i]
}
if strings.Contains(rows[i].FileName, "not-a-model") {
t.Fatalf("plain .ggml must not be discovered: %+v", rows[i])
}
}
if sam == nil {
t.Fatal("SAM model not discovered")
}
if sam.ID != "sam2.1-hiera-tiny-f16" {
t.Fatalf("unexpected SAM id %q", sam.ID)
}
out, err := Generate(GenerateFile{Settings: Settings{ModelsRoot: dir}}, "test")
if err != nil {
t.Fatal(err)
}
for _, want := range []string{
`"sam2.1-hiera-tiny-f16":`,
"sam3_server",
"--model",
"checkEndpoint: /health",
"segmentation: true",
"in: [image]",
" sam:\n",
" exclusive: false\n",
" persistent: true\n",
} {
if !strings.Contains(out, want) {
t.Fatalf("generated config missing %q in:\n%s", want, out)
}
}
}