更新代码

This commit is contained in:
hero920103 committed 2026-10-28 17:39:33 +08:00
1 parent eda7e8bc96
commit 6ff632e0b0
19 files changed
+2033 -197

No files matched your search

+18 -2
View File
@@ -24,7 +24,7 @@ func TestFingerprintIdentical(t *testing.T) {
if d := Of(a).Distance(Of(b)); d != 0 {
t.Fatalf("相同画面应无差异,实际距离 %d", d)
}
if Of(a).Changed(Of(b), 5) {
if Of(a).Changed(Of(b), 5, 0.01) {
t.Fatal("相同画面不应判定为变化")
}
}
@@ -37,11 +37,27 @@ func TestFingerprintDetectsChange(t *testing.T) {
changed.SetGray(x, y, color.Gray{Y: 250})
}
}
if !Of(changed).Changed(Of(base), 5) {
if !Of(changed).Changed(Of(base), 5, 0.01) {
t.Fatal("右半边变白应被判定为变化")
}
}
func TestFingerprintDetectsSubtleLocalChange(t *testing.T) {
// 整块画面背景一致,只有一小块文字/内容变了:8×8 感知哈希会被平均掉,
// 但高分辨率细节网格的归一化平均差能可靠捕捉到。这正是"题目变了却检测
// 不出来"这类问题的修复目标。
base := solid(256, 256, color.Gray{Y: 200})
changed := solid(256, 256, color.Gray{Y: 200})
for y := 40; y < 90; y++ {
for x := 40; x < 90; x++ {
changed.SetGray(x, y, color.Gray{Y: 20})
}
}
if !Of(changed).Changed(Of(base), 5, 0.01) {
t.Fatal("局部小区域变化应被细节网格判定为变化")
}
}
func TestEncodeJPEGResizesLongEdge(t *testing.T) {
src := solid(2000, 400, color.Gray{Y: 128})
raw, err := EncodeJPEG(src, 1280, 75)