Add failing tests for proportional scaling
When only one dimension is provided (e.g., width=400, height=0), the image should scale proportionally. Currently returns 0x0.
This commit is contained in:
@@ -196,6 +196,66 @@ func TestImageProcessor_FitContain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestImageProcessor_ProportionalScale_WidthOnly(t *testing.T) {
|
||||||
|
proc := NewImageProcessor()
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
// 800x600 image, request width=400 height=0
|
||||||
|
// Should scale proportionally to 400x300
|
||||||
|
input := createTestJPEG(t, 800, 600)
|
||||||
|
|
||||||
|
req := &ImageRequest{
|
||||||
|
Size: Size{Width: 400, Height: 0},
|
||||||
|
Format: FormatJPEG,
|
||||||
|
Quality: 85,
|
||||||
|
FitMode: FitCover,
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := proc.Process(ctx, bytes.NewReader(input), req)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Process() error = %v", err)
|
||||||
|
}
|
||||||
|
defer result.Content.Close()
|
||||||
|
|
||||||
|
if result.Width != 400 {
|
||||||
|
t.Errorf("Process() width = %d, want 400", result.Width)
|
||||||
|
}
|
||||||
|
|
||||||
|
if result.Height != 300 {
|
||||||
|
t.Errorf("Process() height = %d, want 300", result.Height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestImageProcessor_ProportionalScale_HeightOnly(t *testing.T) {
|
||||||
|
proc := NewImageProcessor()
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
// 800x600 image, request width=0 height=300
|
||||||
|
// Should scale proportionally to 400x300
|
||||||
|
input := createTestJPEG(t, 800, 600)
|
||||||
|
|
||||||
|
req := &ImageRequest{
|
||||||
|
Size: Size{Width: 0, Height: 300},
|
||||||
|
Format: FormatJPEG,
|
||||||
|
Quality: 85,
|
||||||
|
FitMode: FitCover,
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := proc.Process(ctx, bytes.NewReader(input), req)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Process() error = %v", err)
|
||||||
|
}
|
||||||
|
defer result.Content.Close()
|
||||||
|
|
||||||
|
if result.Width != 400 {
|
||||||
|
t.Errorf("Process() width = %d, want 400", result.Width)
|
||||||
|
}
|
||||||
|
|
||||||
|
if result.Height != 300 {
|
||||||
|
t.Errorf("Process() height = %d, want 300", result.Height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestImageProcessor_ProcessPNG(t *testing.T) {
|
func TestImageProcessor_ProcessPNG(t *testing.T) {
|
||||||
proc := NewImageProcessor()
|
proc := NewImageProcessor()
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|||||||
Reference in New Issue
Block a user