修改完成55%
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
Add-Type -AssemblyName System.Drawing
|
||||
|
||||
$root = Split-Path -Parent $PSScriptRoot
|
||||
$screenshots = Join-Path $root 'docs/design/screens/runtime/2026-07-14'
|
||||
$files = [ordered]@{
|
||||
initial = Join-Path $screenshots 'G06-selected-strip-final-initial-recheck-360x800.png'
|
||||
results = Join-Path $screenshots 'G06-selected-strip-final-results-360x800.png'
|
||||
empty = Join-Path $screenshots 'G06-selected-strip-final-empty-360x800.png'
|
||||
}
|
||||
$images = @{}
|
||||
|
||||
try {
|
||||
foreach ($state in $files.Keys) {
|
||||
$file = $files[$state]
|
||||
if (-not (Test-Path -LiteralPath $file)) {
|
||||
throw "Missing G06 $state screenshot: $file"
|
||||
}
|
||||
|
||||
$image = [System.Drawing.Bitmap]::new($file)
|
||||
$images[$state] = $image
|
||||
if ($image.Width -ne 360 -or $image.Height -ne 800) {
|
||||
throw "G06 $state screenshot must be 360x800, got $($image.Width)x$($image.Height)"
|
||||
}
|
||||
|
||||
foreach ($point in @(@(0, 0), @(359, 0), @(0, 799), @(359, 799))) {
|
||||
if ($image.GetPixel($point[0], $point[1]).A -ne 255) {
|
||||
throw "G06 $state screenshot must have an opaque viewport"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($state in @('results', 'empty')) {
|
||||
$stableDifferenceCount = 0
|
||||
$fullDifferenceCount = 0
|
||||
for ($y = 0; $y -lt 800; $y++) {
|
||||
for ($x = 0; $x -lt 360; $x++) {
|
||||
if ($images.initial.GetPixel($x, $y).ToArgb() -ne $images[$state].GetPixel($x, $y).ToArgb()) {
|
||||
$fullDifferenceCount++
|
||||
if ($y -lt 150) { $stableDifferenceCount++ }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($stableDifferenceCount -ne 0) {
|
||||
throw "G06 $state screenshot changed $stableDifferenceCount pixels in the stable header/title region"
|
||||
}
|
||||
if ($fullDifferenceCount -lt 100) {
|
||||
throw "G06 $state screenshot does not visibly differ from the initial state"
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
foreach ($image in $images.Values) { $image.Dispose() }
|
||||
}
|
||||
|
||||
Write-Output 'G06-SCREENSHOT-CONSISTENCY PASS'
|
||||
Reference in New Issue
Block a user