mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
68 lines
2.0 KiB
Go
68 lines
2.0 KiB
Go
package vision
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/photoprism/photoprism/internal/ai/classify"
|
|
"github.com/photoprism/photoprism/internal/entity"
|
|
"github.com/photoprism/photoprism/pkg/media"
|
|
)
|
|
|
|
func TestGenerateLabels(t *testing.T) {
|
|
t.Run("Success", func(t *testing.T) {
|
|
result, err := GenerateLabels(Files{examplesPath + "/chameleon_lime.jpg"}, media.SrcLocal, entity.SrcAuto)
|
|
|
|
assert.NoError(t, err)
|
|
assert.IsType(t, classify.Labels{}, result)
|
|
assert.Equal(t, 1, len(result))
|
|
|
|
t.Log(result)
|
|
|
|
assert.Equal(t, "chameleon", result[0].Name)
|
|
assert.Equal(t, 7, result[0].Uncertainty)
|
|
})
|
|
t.Run("Cat224", func(t *testing.T) {
|
|
result, err := GenerateLabels(Files{examplesPath + "/cat_224.jpeg"}, media.SrcLocal, entity.SrcAuto)
|
|
|
|
assert.NoError(t, err)
|
|
assert.IsType(t, classify.Labels{}, result)
|
|
assert.Equal(t, 1, len(result))
|
|
|
|
t.Log(result)
|
|
|
|
assert.Equal(t, "cat", result[0].Name)
|
|
assert.InDelta(t, 59, result[0].Uncertainty, 10)
|
|
assert.InDelta(t, float32(0.41), result[0].Confidence(), 0.1)
|
|
})
|
|
t.Run("Cat720", func(t *testing.T) {
|
|
result, err := GenerateLabels(Files{examplesPath + "/cat_720.jpeg"}, media.SrcLocal, entity.SrcAuto)
|
|
|
|
assert.NoError(t, err)
|
|
assert.IsType(t, classify.Labels{}, result)
|
|
assert.Equal(t, 1, len(result))
|
|
|
|
t.Log(result)
|
|
|
|
assert.Equal(t, "cat", result[0].Name)
|
|
assert.InDelta(t, 60, result[0].Uncertainty, 10)
|
|
assert.InDelta(t, float32(0.4), result[0].Confidence(), 0.1)
|
|
})
|
|
t.Run("CustomSourceLocal", func(t *testing.T) {
|
|
labels, err := GenerateLabels(Files{examplesPath + "/cat_224.jpeg"}, media.SrcLocal, entity.SrcManual)
|
|
if err != nil {
|
|
t.Fatalf("GenerateLabels error: %v", err)
|
|
}
|
|
for _, label := range labels {
|
|
if label.Source != entity.SrcManual {
|
|
t.Fatalf("expected custom source %q, got %q", entity.SrcManual, label.Source)
|
|
}
|
|
}
|
|
})
|
|
t.Run("InvalidFile", func(t *testing.T) {
|
|
_, err := GenerateLabels(Files{examplesPath + "/notexisting.jpg"}, media.SrcLocal, entity.SrcAuto)
|
|
assert.Error(t, err)
|
|
})
|
|
}
|